VB&XML的增刪改查


簡介:XML的增刪改查

開發過程中有許多后台操作XML的過程,每次需要操作時都是找很多代碼來參考或者百度一下。今天決定補充下XML操作的知識,把XML操作的增刪改查都寫了一遍,供以后開發參考

查詢:

Public Sub Read()
        '獲取item節點
        Dim xmlNodeList As XmlNodeList = Nothing
        xmlNodeList = XmlDoc.SelectNodes("/root/item")
        '遍歷所有的item節點
        Console.WriteLine("遍歷item節點")
        For Each xmlNode As XmlNode In xmlNodeList
            Console.WriteLine("item節點的RoomInfo屬性讀取:{0}", xmlNode.Attributes("RoomInfo").Value)
            Console.WriteLine("item節點的RoomInfo的值讀取:{0}", xmlNode.InnerText)
        Next


        '遍歷所有items下的item節點
        Console.WriteLine("遍歷items下的item節點")
        xmlNodeList = XmlDoc.SelectNodes("/root/items/item")
        For Each xmlNode As XmlNode In xmlNodeList
            Console.WriteLine("item節點的RoomInfo屬性讀取:{0}", xmlNode.Attributes("RoomInfo").Value)
            Console.WriteLine("item節點的RoomInfo的值讀取:{0}", xmlNode.InnerText)
        Next

        '遍歷第一個items下的item節點 (第一種方法適用於有id的)
        Console.WriteLine("遍歷第一個items下的item節點")
        xmlNodeList = XmlDoc.SelectNodes("/root/items[@id='item1']/item")
        For Each xmlNode As XmlNode In xmlNodeList
            Console.WriteLine("item節點的RoomInfo屬性讀取:{0}", xmlNode.Attributes("RoomInfo").Value)
            Console.WriteLine("item節點的RoomInfo的值讀取:{0}", xmlNode.InnerText)
        Next

        '遍歷第一個items下的item節點 (第二種方法適用於節點沒有特別標識)
        'Console.WriteLine("遍歷第一個items下的item節點")
        'xmlNodeList = XmlDoc.SelectNodes("/root/items")
        'Dim xmlNodeList1 As XmlNodeList = xmlNodeList(0).SelectNodes("item")
        'For Each xmlNode As XmlNode In xmlNodeList1
        '    Console.WriteLine("item節點的RoomInfo屬性讀取:{0}", xmlNode.Attributes("RoomInfo").Value)
        '    Console.WriteLine("item節點的RoomInfo的值讀取:{0}", xmlNode.InnerText)
        'Next

        '遍歷第二個items下的Group下的item節點 
        Console.WriteLine("遍歷第二個items下的Group下的item節點")
        xmlNodeList = XmlDoc.SelectNodes("/root/items[@id='item2']/Group[@id='g1']/item")
        For Each xmlNode As XmlNode In xmlNodeList
            Console.WriteLine("item節點的RoomInfo屬性讀取:{0}", xmlNode.Attributes("RoomInfo").Value)
            Console.WriteLine("item節點的RoomInfo的值讀取:{0}", xmlNode.InnerText)
        Next

    End Sub

更新:

Public Sub Update()
'修改所有的item節點RoomInfo的屬性的值為123
Console.WriteLine("修改所有的item節點RoomInfo的屬性的值為123")
Dim xmlNodeList As XmlNodeList = Nothing
xmlNodeList = XmlDoc.SelectNodes("/root/item")
For Each xmlNode As XmlNode In xmlNodeList
xmlNode.Attributes("RoomInfo").Value = "123"
Next
'修改所有的item節點的值為123
Console.WriteLine("修改所有的item節點的值為123")
xmlNodeList = XmlDoc.SelectNodes("/root/item")
For Each xmlNode As XmlNode In xmlNodeList
xmlNode.InnerText = "123"
Next
Console.WriteLine(XmlDoc.InnerXml)
End Sub

刪除:

Public Sub Delete()
'刪除所有的item節點
Console.WriteLine("刪除所有的item節點")
Dim xmlNodeList As XmlNodeList = Nothing
xmlNodeList = XmlDoc.SelectNodes("/root/item")
For Each xmlNode As XmlNode In xmlNodeList
xmlNode.ParentNode.RemoveChild(xmlNode)
Next
'刪除所有的items下的子節點
Console.WriteLine("刪除所有的items下的子節點")
xmlNodeList = XmlDoc.SelectNodes("/root/items")
For Each xmlNode As XmlNode In xmlNodeList
xmlNode.RemoveAll()
'xmlNode.ParentNode.RemoveChild(xmlNode)
Next
Console.WriteLine(XmlDoc.InnerXml)
End Sub


添加:

Public Sub Add()
'item節點添加test=123屬性
Console.WriteLine("item節點添加test=123屬性")
Dim xmlNodeList As XmlNodeList = Nothing
Dim xmlAttribute As XmlAttribute = Nothing
xmlNodeList = XmlDoc.SelectNodes("/root/item")
For Each xmlNode As XmlNode In xmlNodeList
'屬性的名稱
xmlAttribute = XmlDoc.CreateAttribute("test")
xmlAttribute.Value = "123"
xmlNode.Attributes.Append(xmlAttribute)
Next
'item節點添加子節點<test name="123">
Console.WriteLine("item節點添加子節點<test name='123'>")
xmlNodeList = XmlDoc.SelectNodes("/root/item")
Dim xmlNewNode As XmlElement = Nothing
For Each xmlNode As XmlNode In xmlNodeList
xmlNewNode = XmlDoc.CreateElement("test")
xmlNewNode.SetAttribute("name", "123")
xmlNewNode.InnerText = "123"
xmlNode.AppendChild(xmlNewNode)
Next
XmlDoc.Save("C:\Users\dudj\Desktop\123.xml")
Console.WriteLine(XmlDoc.InnerXml)
End Sub

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM