這一篇文章描述如何修改XML文件中的一個節點。
接上一篇文章,採用bookstore.xml,該文件中現在已經有兩個book子節點,現在修改genre屬性爲comedy的book節點,將該genre屬性改爲 update comedy,並將該book節點的author子節點的值改爲pipi。
1.仍然定義一個讀取xml文件的變量:
Dim xmlDoc as New XmlDocument
xmlDoc.Load("bookstore.xml")
2.定義一個xml文件的節點列表:nodelist,獲取根節點
Dim nodeList as XmlNodeList =xmlDoc.SelectSingleNode("bookstore").ChildNodes
3.循環查找該節點列表,找出genre屬性爲comedy的節點:
Dim xnode as XmlNode //申明兩個節點變量
Dim xe as XmlElement
For Each xnode In nodeList //vb的foreach循環語句與c#的稍有不同
xe =CType(xnode,XmlElement) //將節點類型轉換爲XmlEment
if (xe.GetAttribute("genre")="comedy") Then //獲取該節點的genre屬性值,並與“comedy”比較
xe.SetAttribute("genre","update comedy")
Dim xSubList as XmlNodeList //定義兩個變量,爲子循環用
Dim xSubNode as XmlNode
xSubList =xe.ChildNodes //獲取book節點的所有子節點
For Each xSubNode in xSubList
Dim xeSub as XmlElement =CType(xSubNode, XmlElement)
If (xeSub.Name ="author") Then
xeSub.InnerText ="pipi" //修改該節點的值
Exit For //找到就退出子循環
End If
Next
Exit For //退出大循環
End If
Next
4.忘了最重要的一點了,修改完了還沒有保存呢!
xmlDoc.Save("bookstore.xml")
好了,就這些了,以後可以繼續擴展。
另外,補充一下,xmlDoc.Load("bookstore.xml")這句很容易出錯,下次要找一個通用的打開xml文件的函數。