xml add-update-delete-show

<?xml version="1.0" encoding="gb2312"?>
<bookstore>

</bookstore>
----------------------------------------------------------------------------------
Dim xmlDoc As New Xml.XmlDocument()

 1   Private Sub btnAddXml_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddXml.Click
 2
 3        xmlDoc.Load("bookstore.xml")    '加载xml
 4        Dim root As Xml.XmlNode = xmlDoc.SelectSingleNode("bookstore"'查找<bookstore>节点
 5        Dim xe As Xml.XmlElement = xmlDoc.CreateElement("book")        '创建一个<book>子节点
 6        xe.SetAttribute("genre""教程")               '设置该节点的 genre属性
 7        xe.SetAttribute("ISBN""7-121-01812-6")             '设置该节点的 ISBN 属性
 8
 9        Dim xeSub1 As Xml.XmlElement = xmlDoc.CreateElement("title")
10        xeSub1.InnerText = "vb.net2005教程"
11        xe.AppendChild(xeSub1)      '添加到 <book>子节点中
12        Dim xeSub2 As Xml.XmlElement = xmlDoc.CreateElement("auther")
13        xeSub2.InnerText = "作者:王勇"
14        xe.AppendChild(xeSub2)      '添加到 <book>子节点中
15        Dim xeSub3 As Xml.XmlElement = xmlDoc.CreateElement("price")
16        xeSub3.InnerText = "15.3"
17        xe.AppendChild(xeSub3)      '添加到 <book>子节点中
18
19        root.AppendChild(xe)        '添加到<bookstore>子节点中
20        xmlDoc.Save("bookstore.xml")    '保存
21    End Sub

result:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
  
<book genre="教程" ISBN="7-121-01812-6">
    
<title>vb.net2005教程</title>
    
<auther>作者:王勇</auther>
    
<price>15.3</price>
  
</book>
</bookstore>
------------------------------------------------------------------------------------
 1    Private Sub btnXml_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdateXml.Click
 2        xmlDoc.Load("bookstore.xml")    '加载xml
 3        Dim nodeList As Xml.XmlNodeList
 4        nodeList = xmlDoc.SelectSingleNode("bookstore").ChildNodes   '获取<bookstore>节点的所有子节点
 5        For Each xn As Xml.XmlNode In nodeList      '遍历所有子节点
 6            Dim xe As Xml.XmlElement = CType(xn, Xml.XmlElement)     '将子节点类型转换成 xmlElement类型
 7            If xe.GetAttribute("genre"= "教程" Then   '如果genre的属性值的为"教程",则更新
 8                xe.SetAttribute("genre""update教程")
 9
10                Dim nlt As Xml.XmlNodeList = xe.ChildNodes  '获取xe节点的子节点
11                For Each xe1 As Xml.XmlNode In nlt      '遍历子节点
12                    Dim xe2 As Xml.XmlElement = CType(xe1, Xml.XmlElement)  '类型转换
13                    If xe2.Name = "auther" Then     '找子节点 auther
14                        xe2.InnerText = "王勇 晨之阳"
15                        Exit For
16                    End If
17                Next
18            End If
19        Next
20        xmlDoc.Save("bookstore.xml")        '保存   
21    End Sub

result:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
  
<book genre="update教程" ISBN="7-121-01812-6">
    
<title>vb.net2005教程</title>
    
<auther>王勇 晨之阳</auther>
    
<price>15.3</price>
  
</book>
</bookstore>

 1 Private Sub btnDeleteXml_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeleteXml.Click
 2        xmlDoc.Load("bookstore.xml")    '加载
 3        Dim nodeList As Xml.XmlNodeList = xmlDoc.SelectSingleNode("bookstore").ChildNodes   '获取子节点
 4        For Each xn As Xml.XmlNode In nodeList  '遍历所有子节点
 5            Dim xe As Xml.XmlElement = CType(xn, Xml.XmlElement)    '类型转换
 6            If xe.GetAttribute("genre"= "update教程" Then     '如果存在这个节点,则更新
 7                xe.RemoveAttribute("genre")
 8            End If
 9
10            Dim nlt As Xml.XmlNodeList = xe.ChildNodes  '获取xe的子节点
11            For Each xe1 As Xml.XmlNode In xe.ChildNodes
12                Dim xe2 As Xml.XmlElement = CType(xe1, Xml.XmlElement)
13                If xe2.Name = "price" Then  '如果存在 price 节点,则删除该属性值
14                    xe2.RemoveAll()
15                    Exit For           '退出循环
16                End If
17            Next
18        Next
19        xmlDoc.Save("bookstore.xml")
20    End Sub
result:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
  
<book ISBN="7-121-01812-6">
    
<title>vb.net2005教程</title>
    
<auther>王勇 晨之阳</auther>
    
<price>15.3</price>
  
</book>
</bookstore>
--------------------------------------------------------------------------------------
 1 Private Sub btnShowXml_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowXml.Click
 2        xmlDoc.Load("bookstore.xml")
 3        Dim nodeList As Xml.XmlNodeList = xmlDoc.SelectSingleNode("bookstore").ChildNodes   '获取bookstore节点的子节点
 4        For Each xn As Xml.XmlNode In nodeList      '遍历bookstore节点的所有子节点
 5            Dim xe As Xml.XmlElement = CType(xn, Xml.XmlElement)
 6            Me.lblShowXml.Text = "ISBN:" + xe.GetAttribute("ISBN")
 7
 8            Dim nlt As Xml.XmlNodeList = xe.ChildNodes
 9            For Each xn2 As Xml.XmlNode In nlt      '遍历xe的子节点
10                If xn2.Name = "title" Then      '如果节点 title 存在,则显示甚属性值
11                    Me.lblShowXml.Text += " -- title:" + xn2.InnerText
12                End If
13
14            Next
15        Next
16    End Sub
result:
ISBN:7-121-01812-6 -- title:vb.net2005教程
posted @ 2007-02-03 22:57  yongwnet  阅读(359)  评论(0编辑  收藏  举报