简介: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. 不同框架实现的todomvc

    http://todomvc.com/ http://hao.jobbole.com/

  2. vue 实现 点击取消监控内容是否发生修改 若修改提示 是否需要保存

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

  3. 在 yii2.0 框架中封装导出html 表格样式 Excel 类

    在 vendor/yiisoft/yii2/helpers/ 创建一个 Excel.php <?php namespace yii\helpers;   class Excel{         ...

  4. 运行npm start vue.js项目 出现 npm ERR! missing script: start 错误

    npm ERR! missing script: start 错误 有可能缺少依赖包,运行nmp install安装依赖(一般都依赖很多包,过程有点慢),安装完后发现多一个 node_modules文 ...

  5. 使用GitHub+Hexo建立个人网站,并绑定自己的域名(Ubuntu环境下)

    参考链接: youngzn.github.io     hexo官网     博客:从jekyll到hexo    hexo建站小结  全过程  简洁过程 使用GitHub+Hexo建立个人网站,并绑 ...

  6. 如何使用Java创建Excel(.xls 和 .xlsx)文件 并写入数据

    1,需要依赖的jar包, <!-- POI(operate excel) start --> <!-- the version of the following POI packag ...

  7. HNU 12933 Random Walks Catalan数 阶乘求逆元新技能

    一个Catalan数的题,打表对每个数都求一次逆元会T,于是问到了一种求阶乘逆元的打表新方法. 比如打一个1~n的阶乘的逆元的表,假如叫inv[n],可以先用费马小定理什么的求出inv[n],再用递推 ...

  8. 2014 CodingTrip - 携程编程大赛 (预赛第二场)

    1001: 食物链(poj1182),直接贴代码,稍作可过 并查集 // // main.cpp // 携程1 // // Created by zhang on 14-4-11. // Copyri ...

  9. BNUOJ 4049 四叉树

    四叉树 Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld      Java class name: Ma ...

  10. Oracle EBS发放销售订单

     模拟发放销售订单界面进行发放操作 PROCEDURE insert_row(x_batch_id OUT NUMBER) IS l_autopack_flag VARCHAR2(1 ); l_a ...