当前位置:首页 > 网络编程 > 软件语言 > .NET > VB.NET中操作xml文件(插入节点、修改、删除)

VB.NET中操作xml文件(插入节点、修改、删除)

点击次数:96 次 发布日期:2008-11-06 08:05:29 作者:源代码网
源代码网推荐
广告载入中

源代码网整理以下已知有一个XML文件(bookstore.xml)如下:  
  <?xml   version="1.0"   encoding="gb2312"?>  
  <bookstore>  
      <book   genre="fantasy"   ISBN="2-3631-4">   
          <title>Oberon"s   Legacy</title>  
          <author>Corets,   Eva</author>  
          <price>5.95</price>  
      </book>  
  </bookstore>  
     
  1、往<bookstore>节点中插入一个<book>节点:  
        Dim xmlDoc As New XmlDocument()
        xmlDoc.Load("bookstore.xml")

软件开发网 www.mscto.com


        Dim root As XmlNode = xmlDoc.SelectSingleNode("bookstore") "查找<bookstore>  
        Dim xe1 As XmlElement = xmlDoc.CreateElement("book") "创建一个<book>节点  
        xe1.SetAttribute("genre", "李赞红") "设置该节点genre属性  
        xe1.SetAttribute("ISBN", "2-3631-4") "设置该节点ISBN属性  
        Dim xesub1 As XmlElement = xmlDoc.CreateElement("title")
        xesub1.InnerText = "CS从入门到精通" "设置文本节点  
        xe1.AppendChild(xesub1) "添加到<book>节点中  
        Dim xesub2 As XmlElement = xmlDoc.CreateElement("author")


        xesub2.InnerText = "候捷"
        xe1.AppendChild(xesub2)
        Dim xesub3 As XmlElement = xmlDoc.CreateElement("price")
        xesub3.InnerText = "58.3"
        xe1.AppendChild(xesub3)

源代码网整理以下        root.AppendChild(xe1) "添加到<bookstore>节点中  
        xmlDoc.Save("bookstore.xml")
  //===============================================  
  结果为:  
  <?xml   version="1.0"   encoding="gb2312"?>  
  <bookstore>  
      <book   genre="fantasy"   ISBN="2-3631-4">  
          <title>Oberon"s   Legacy</title>  
          <author>Corets,   Eva</author>  
          <price>5.95</price>  
      </book>  


      <book   genre="李赞红"   ISBN="2-3631-4">  
          <title>CS从入门到精通</title>  
          <author>候捷</author>  
          <price>58.3</price>  
      </book>  
  </bookstore>  
     
  2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。  
          Dim nodeList As XmlNodeList = xmlDoc.SelectSingleNode("bookstore").ChildNodes "获取bookstore节点的所有子节点  
          Dim xn As XmlNode

软件开发网 www.mscto.com


          For Each xn In  nodeList "遍历所有子节点  
             Dim xe As XmlElement = CType(xn, XmlElement) "将子节点类型转换为XmlElement类型  
             If xe.GetAttribute("genre") = "李赞红" Then "如果genre属性值为“李赞红”  
                xe.SetAttribute("genre", "update李赞红") "则修改该属性为“update李赞红”  
                Dim nls As XmlNodeList = xe.ChildNodes "继续获取xe子节点的所有子节点  
                Dim xn1 As XmlNode
                For Each xn1 In  nls "遍历  

                   Dim xe2 As XmlElement = CType(xn1, XmlElement) "转换类型  
                   If xe2.Name = "author" Then "如果找到  
                      xe2.InnerText = "亚胜" "则修改  
                      Exit ForEach "找到退出来就可以了  
                   End If
                Next xn1
                Exit ForEach
             End If
          Next xn

源代码网整理以下          xmlDoc.Save("bookstore.xml") "保存。  
  //==================================================  
  最后结果为:  
  <?xml   version="1.0"   encoding="gb2312"?>  
  <bookstore>  
      <book   genre="fantasy"   ISBN="2-3631-4">  
          <title>Oberon"s   Legacy</title>  
          <author>Corets,   Eva</author>  
          <price>5.95</price>  
      </book>  
      <book   genre="update李赞红"   ISBN="2-3631-4">  


          <title>CS从入门到精通</title>  
          <author>亚胜</author>  
          <price>58.3</price>  
      </book>  
  </bookstore>  
     
  3、删除   <book   genre="fantasy"   ISBN="2-3631-4">节点的genre属性,删除   <book   genre="update李赞红"   ISBN="2-3631-4">节点。  
     Dim xnl As XmlNodeList = xmlDoc.SelectSingleNode("bookstore").ChildNodes

源代码网整理以下     Dim xn As XmlNode
     For Each xn In  xnl
        Dim xe As XmlElement = CType(xn, XmlElement)
        If xe.GetAttribute("genre") = "fantasy" Then
           xe.RemoveAttribute("genre") "删除genre属性  
        Else
           If xe.GetAttribute("genre") = "update李赞红" Then
              xe.RemoveAll() "删除该节点的全部内容  
           End If
        End If
     Next xn
     xmlDoc.Save("bookstore.xml")
  //===========================================  
  最后结果为:  
  <?xml   version="1.0"   encoding="gb2312"?>  
  <bookstore>  
      <book   ISBN="2-3631-4">  
          <title>Oberon"s   Legacy</title>  
          <author>Corets,   Eva</author>  
          <price>5.95</price>  
      </book>  
      <book>  
      </book>  
  </bookstore>  
     
  4、显示所有数据。  
        Dim xn As XmlNode = xmlDoc.SelectSingleNode("bookstore")

源代码网整理以下        Dim xnl As XmlNodeList = xn.ChildNodes

源代码网整理以下        Dim xnf As XmlNode
        For Each xnf In  xnl
           Dim xe As XmlElement = CType(xnf, XmlElement)
           Console.WriteLine(xe.GetAttribute("genre")) "显示属性值  
           Console.WriteLine(xe.GetAttribute("ISBN"))
  
           Dim xnf1 As XmlNodeList = xe.ChildNodes
           Dim xn2 As XmlNode
           For Each xn2 In  xnf1
              Console.WriteLine(xn2.InnerText) "显示子节点点文本  
           Next xn2
        Next xnf

软件开发网 www.mscto.com

源代码网整理以下 


源代码网推荐

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华