学习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文件的函数。

 

 

 

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