VBXML的增删改查

news/2024/7/6 22:18:34

简介: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

 

转载于:https://www.cnblogs.com/KingUp/p/5741225.html


http://www.niftyadmin.cn/n/2497452.html

相关文章

wk一sm5时间温度控制器_湿度控制器原理介绍 温湿度控制器分类【详解】

温湿度控制器是一种仪表&#xff0c;其采用的是先进的单片机作为控制的核心&#xff0c;并且使用的温湿度传感器是进口的性能良好的产品&#xff0c;能对湿度和温度同时进行检测和控制&#xff0c;并能启动风扇或是加热器&#xff0c;自动调节湿度和温度。温 湿度控制器原理是什…

springmvc json

pom.xml加入两个jar包 <dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-core-lgpl</artifactId><version>1.8.1</version></dependency><dependency><groupId>org.codehaus.jackson<…

python怎么切换linux目录,Linux下切换python2和python3

为什么需要有两个版本的PythonPython2和Python3不兼容是每个接触过Python的开发者都知道的事&#xff0c;虽说Python3是未来&#xff0c;但是仍然有很多项目采用Python2开发。Linux的许多发行版本(如Ubuntu)都会自带Python2.7&#xff0c;但是当我们准备开发一个Python3项目的时…

搭建heartbeat高可用

1:准备阶段两台服务器一主一从我这里采用了yum的方式进行安装&#xff0c;如想使用rpm安装&#xff0c;请自行下载rpm包安装epel拓展源国外的速度是在是太慢&#xff0c;我这里选择了阿里的拓展源&#xff0c;PS 感谢马云。[roottudou ~]# rm -rf /etc/yum.repos.d/* [roottu…

临时对象

临时对象(无法作为左值&#xff0c;即对象类型为const类型)产生的时期&#xff1a; 1. 以值的方式给函数传参&#xff1b; 2. 类型转换&#xff1b; 3. 函数返回一个对象时&#xff1b; 使用&#xff1a; string foo(); void bar(string& s); bar(foo());      //编译…

jquery 上下触屏滑动_jQuery简单实现上下,左右滑动的方法

本文实例讲述了jQuery简单实现上下,左右滑动的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;渐变移动出足够的空白 -> 淡出最后一个 ->渐变移动出足够的空白我们要做的是向左移动效果.这个效果用时需添加一个DIV设置超出部分不显示,这样就可以用了.闲话不…

linux 允许用户ftp,在Unix或Linux上限制或允许某ftp用户登录

Unix 或Linux 是通过 配置文件 ftpusers 限制用户 ftp 连接服务器的。在该文件中的用户都不能通过ftp 登录服务器。每个被限制的用户名各占一行&#xff0c;该文件一般只能通过root用户维护。如果用户名包含在该文件中&#xff0c;那么这个用户使用ftp连接服务器时&#xff0c…

运行内存四个G能安装linux吗,Linux下Redis的安装和部署

一、Redis介绍Redis是当前比较热门的NOSQL系统之一&#xff0c;它是一个key-value存储系统。和Memcache类似&#xff0c;但很大程度补偿了Memcache的不足&#xff0c;它支持存储的value类型相对更多&#xff0c;包括string、list、set、zset和hash。这些数据类型都支持push/pop…