简介: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 = ""
Next
'修改所有的item节点的值为123
Console.WriteLine("修改所有的item节点的值为123")
xmlNodeList = XmlDoc.SelectNodes("/root/item")
For Each xmlNode As XmlNode In xmlNodeList
xmlNode.InnerText = ""
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 = ""
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", "")
xmlNewNode.InnerText = ""
xmlNode.AppendChild(xmlNewNode)
Next
XmlDoc.Save("C:\Users\dudj\Desktop\123.xml")
Console.WriteLine(XmlDoc.InnerXml)
End Sub

VB&XML的增删改查的更多相关文章

  1. 对oracle里面clob字段里面xml的增删改查学习

    这段时间,我使用系统表里面有clob字段里面存放的xml信息,我们如何对xml进行增删改查操作呢,自己参考了很多也学到很多,给大家分享一下 首先我们先建测试表 CREATE TABLE EFGP_23 ...

  2. java实现xml文件增删改查

    java一次删除xml多个节点: 方案1.你直接改动了nodeList,这一般在做循环时是不同意直接这么做的. 你能够尝试在遍历一个list时,在循环体同一时候删除list里的内容,你会得到一个异常. ...

  3. Mybatis之基于XML的增删改查

    这里先吐槽下,写的半天的东西,IE浏览器弹出调试窗口导致写的东西全部没保存,搞得我还要重新用谷歌写,思路全没了,fuck. 前面学习了下spring的DAO层,说起DAO层,那ORM肯定是少不了的,O ...

  4. Mybatis_2.基于XML的增删改查

    1.实体类User.java public class User { private int id; private String name; private int age; //getter.se ...

  5. java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查

    一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = D ...

  6. 使用idea对XML的增删改查

    XML:是一种可扩展标记性的语言,与java语言无关,它可以自定义标签. 1.首先需要到导入Dom4j架包,与自己所时候的ide关联 2.编写自己的xml文件,入上图所示(里面的所有元素及元素中的属性 ...

  7. c# xml的增删改查操作 xmlDocument 的用法

    1.将xml转换为DataTable string path = "";//xml的位置StringReader sr = null;XmlTextReader xmlReader ...

  8. .NET XML文件增删改查

    查询 采用的是DataSet 的 ReadXML方法. DataSet ds = new System.Data.DataSet(); ds.ReadXml("bdc.xml"); ...

  9. C# winform xml的增删改查

    代码如下: using System; using System.Collections.Generic; using System.IO; using System.Linq; using Syst ...

随机推荐

  1. PostgreSQL Replication之第二章 理解PostgreSQL的事务日志(4)

    2.4 调整检查点和XLOG 目前为止,这一章已经提供深入洞察PostgreSQL如何写入数据,一般来说,XLOG是用来干什么的.考虑到这方面的知识,我们现在可以继续并学习我们能做些什么来使我们的数据 ...

  2. JQ加载进度条动画

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. c# window服务-初学习

    window服务-初学习 一.工具: VS2015+NET Framework4.5. 二.操作: 1.新建windows服务的项目: 2.修改windows服务相关内容: 3.预览windows服务 ...

  4. SSL和SSH

    简单的来说:SSL是安全传输的一种安全协议,SSH只是在传输的时候为了防止"中间人"篡改数据而提供的安全的"通道" 在使用的时候我们只关心传输数据的安全性,那么 ...

  5. UVA-10200 Prime Time 素数(注意除法精度)

    题目链接:https://cn.vjudge.net/problem/UVA-10200 题意 给出一个公式$ m=n^2+n+41, n \in Z^+ $ 现在$ a,b\in[0, 10000] ...

  6. [POI2009]KON-Ticket Inspector(二维前缀和+DP)

    题意 有n个车站,现在有一辆火车从1到n驶过,给出aij代表从i站上车j站下车的人的个数.列车行驶过程中你有K次检票机会,所有当前在车上的人会被检票,问最多能检多少个不同的人的票 (n<=600 ...

  7. 钓鱼WIFI的防范

    实际上,Wi-Fi接入点(AP).路由器和热点常常是高度暴露的攻击面.用户一不小心就有可能踏进攻击者设置的Wi-Fi陷阱,为企业造成信息泄露或经济损失. 如今Wi-Fi 6时代悄然到来,为高密海量无线 ...

  8. 作诗(si)[分块]

    题目描述 神犇SJY虐完HEOI之后给傻×LYD出了一题: SHY是T国的公主,平时的一大爱好是作诗. 由于时间紧迫,SHY作完诗之后还要虐OI,于是SHY找来一篇长度为N的文章,阅读M次,每次只阅读 ...

  9. HDU 4928 Series 2

    有了题解以后这题就成了一个模拟题.不过写了好久才把它写对…… Sad #include <iostream> #include <cstdio> #include <cs ...

  10. CentOS 搭建 Mysql MMM 高可用架构

    环境 CentOS Mysql 5.1 前提 安装了EPEL,详细安装步骤请參照 http://blog.csdn.net/robinsonmhj/article/details/36184863 机 ...