學習XML(修改一個節點)

        這一篇文章描述如何修改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文件的函數。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章