xml文件操作小结(3)---selectsinglenode方法中的xpath%%%%转自酷网动力(www.ASPCOOL.COM)。...
Element, 指形如<Name>Tom<Name>的节点。它可以包括:Element, Text, Comment, ProcessingInstruction, CDATA, and EntityReference.
Attribute, 指在<Employee id=”12345”>中的粗体部分。
Comment,指形如:<!-- my comment --> 的节点。
Text,指在<Name>Tom<Name>的粗体部分。
在XML中,可以用XmlNode对象来参照各种XML数据类型。
2.1 查询已知绝对路径的节点(集)
objNodeList = objDoc.SelectNodes(“Company/Department/Employees/Employee”)
或者
objNodeList = objNode.SelectNodes(“/Company/Department/Employees/Employee”)
以上两种方法可返回一个NodeList对象,如果要返回单个节点可使用SelectSingleNode方法,该方法如果查询到一个或多个节点,返回第一个节点;如果没有查询的任何节点返回 Nothing。例如:
objNode = objNode.SelectSingleNode(“/Company/Department/Employees/Employee”)
If Not (objNode is Nothing) then
‘- Do process
End If
2.2 查询已知相对路径的节点(集)
可使用类似于文件路径的相对路径的方式来查询XML的数据
objNode = objDoc.SelectSingleNode(“Company/Department”)
objNodeList = objNode.SelectNodes(“../Department)
objNode = objNode.SelectNode(“Employees/Employee”)
2.3 查询已知元素名的节点(集)
在使用不规则的层次文档时,由于不知道中间层次的元素名,可使用//符号来越过中间的节点,查询其子,孙或多层次下的其他所有元素。例如:
objNodeList = objDoc.SelectNodes(“Company//Employee”)
2.4 查询属性(attribute)节点
以上的各种方法都返回元素(element)节点(集),返回属性(attribute),只需要采用相应的方法,在属性名前加一个@符号即可,例如:
objNodeList = objDoc.SelectNodes(“Company/Department/Employees/Employee/@id”)
objNodeList = objDoc.SelectNodes(“Company//@id”)
2.5 查询Text节点
使用text()来获取Text节点。
objNode = objDoc.SelectSingleNode(“Company/Department/Deparmt_Name/text()”)
2.6 查询特定条件的节点
使用[]符号来查询特定条件的节点。例如:
a. 返回id号为 10102的Employee节点
objNode = objDoc.SelectSingleNode(“Company/Department/Employees/Employee[@id=’10102’]”)
b. 返回Name为Zhang Qi的Name 节点
objNode = objDoc.SelectSingleNode(“Company/Department/Employees/Employee/Name[text()=’Zhang Qi’]”)
c. 返回部门含有职员22345的部门名称节点
objNode = objDoc.SelectSingleNode("Company/Department[Employees/Employee/@id='22345']/Department_Name")
2.7 查询多重模式的节点
使用 | 符号可以获得多重模式的节点。例如:
objNodeList = objDoc.SelectNodes(“Company/Department/Department_Name | Company/Department/Manager”)
2.8 查询任意子节点
使用*符号可以返回当前节点的所有子节点。
objNodeList = objDoc.SelectNodes(“Company/*/Manager)
或者
objNodeList = objNode.ChildNodes
3 XML数据的编辑
3.1 增加一个元素的属性(attribute)节点
Dim objNodeAttr As XmlNode
objNodeAttr = objDoc.CreateAttribute("id", Nothing)
objNodeAttr.InnerXml = "101"
objNode.Attributes.Append(objNodeAttr)
3.2 删除一个元素的属性
objNode.Attributes.Remove(objNodeAttr)
3.3 增加一个子元素(Element)
Dim objNodeChild As XmlNode
objNodeChild = objDoc.CreateElement(Nothing, "ID", Nothing)
objNodeChild.InnerXml = "101"
objNode.AppendChild(objNodeChild)
3.4 删除一个子元素
objNode.RemoveChild(objNodeChild)
3.5 替换一个子元素
objNOde.ReplaceChild(newChild,oldChild)
4 参考数据
<?xml version="1.0" encoding="UTF-8"?>
<Company>
<Department id="101">
<Department_Name>Cai WuBu</Department_Name>
<Manager>Zhang Bin</Manager>
<Employees>
<Employee id="12345">
<Employee_ID>12345</Employee_ID>
<Name>Zhang Bin</Name>
<Gender>male</Gender>
</Employee>
<Employee id="10101">
<Employee_ID>10101</Employee_ID>
<Name>Zhang QI</Name>
<Gender>female</Gender>
</Employee>
<Employee id="10102">
<Employee_ID>10102</Employee_ID>
<Name>Zhang Xia</Name>
<Gender>male</Gender>
</Employee>
<Employee id="10201">
<Employee_ID>10201</Employee_ID>
<Name>ZhangChuang</Name>
<Gender>male</Gender>
</Employee>
<Employee id="10202">
<Employee_ID>10202</Employee_ID>
<Name>Zhang Jun</Name>
<Gender>male</Gender>
</Employee>
</Employees>
</Department>
<Department id="102">
<Department_Name>KaiFa Bu</Department_Name>
<Manager>Wang Bin</Manager>
<Employees>
<Employee id="22345">
<Employee_ID>22345</Employee_ID>
<Name>Wang Bin</Name>
<Gender>male</Gender>
</Employee>
<Employee id="20101">
<Employee_ID>20101</Employee_ID>
<Name>Wang QI</Name>
<Gender>female</Gender>
</Employee>
<Employee id="20102">
<Employee_ID>20102</Employee_ID>
<Name>Wang Xia</Name>
<Gender>male</Gender>
</Employee>
<Employee id="20201">
<Employee_ID>20201</Employee_ID>
<Name>Wang Chuang</Name>
<Gender>male</Gender>
</Employee>
<Employee id="20202">
<Employee_ID>20201</Employee_ID>
<Name>Wang Jun</Name>
<Gender>male</Gender>
</Employee>
</Employees>
</Department>
</Company>
转载于:https://www.cnblogs.com/ocean2000/archive/2006/08/08/471029.html
xml文件操作小结(3)---selectsinglenode方法中的xpath%%%%转自酷网动力(www.ASPCOOL.COM)。...相关推荐
- Xml中SelectSingleNode方法中的xpath用法
最常见的XML数据类型有:Element, Attribute,Comment, Text.Element, 指形如<Name>Tom<Name>的节点.它可以包括:Eleme ...
- php复制xml文件,PHP_php xml文件操作实现代码(二),复制代码 代码如下:?php //创 - phpStudy...
php xml文件操作实现代码(二) 复制代码 代码如下: //创建一个新的DOM文档 $dom = new DomDocument(); //在根节点创建departs标签 $departs = $ ...
- [转载]VC轻松解析XML文件 - CMarkup类的使用方法
VC轻松解析XML文件 - CMarkup类的使用方法 VC解析XML文件的工具有很多,CMarkup, tinyXML,还有IBM的,MS的等等. 据说tinyXML很好,可能字符集问题,我编译不了 ...
- 新浪微博 XML 文件操作助手
TAG: 新浪微博 XML 文件操作助手 API /// <summary> /// XML 文件操作助手 /// </summary> public class XmlHel ...
- html用dom显示xml,html DOM文件引用一个XML文件将不会在浏览器中打印
我完全不熟悉这一点,我正在上课,现在变成了一个令人头疼的问题.我有这个HTML DOM文件,它引用了一个XML文件,我需要在浏览器中显示在屏幕上.它应该只打印标题,标题,第一个,最后一个,位置,描述的 ...
- 对路径XXX的访问被拒绝(文件操作权限)的解决方法
对路径XXX的访问被拒绝(文件操作权限)的解决方法 参考文章: (1)对路径XXX的访问被拒绝(文件操作权限)的解决方法 (2)https://www.cnblogs.com/armyant/arch ...
- php xml expat,php 使用expat方式解析xml文件操作示例
本文实例讲述了php 使用expat方式解析xml文件操作.分享给大家供大家参考,具体如下: test.xml: George John Reminder George2 John2 Reminder ...
- Spring中利用applicationContext.xml文件实例化对象和调用方法
Spring中实例化对象和调用方法入门 1.jar包和xml的准备 已上传至百度云盘,链接: https://pan.baidu.com/s/1CY0xQq3GLK06iX7tVLnp3Q 提取码: ...
- 解决IDEA中 XML文件屎黄色背景 的方法
我们在使用IDEA编写MyBatis的.xml文件时,会发现出现一大片的屎黄色背景提示,每次编写代码的时候都感觉很突兀,所以在这里说下如何解决这个问题. 由于IDEA版本的问题,较新版本中相关设置的位 ...
最新文章
- OAuth 2 实现单点登录,通俗易懂!
- php带帽接口_利用php自包含特性上传webshell
- linux ftp 后台执行,Linux环境CENTOS下apache-ftpserver搭建配置及后台启动
- exo文件_您在eXo平台上的第一个Juzu Portlet
- 论文浅尝 | 使用变分推理做KBQA
- Java8 Stream详解~筛选:filter
- PIM DM技术原理与实验
- 后盾网html5视频教程全集观看下载
- NAT穿透技术、穿透原理和方法详解
- 阿里云服务器使用命令行上发送邮件
- CSDN 「Markdown」编辑器的优点、不足、使用技巧和新增功能|CSDN编辑器测评
- 高斯投影正反算C语言程序代码,高斯投影正反算c代码
- 为什么计算机播放音乐不响,电脑打开音响,播放音乐为什么没有声音??!!~急急急!!快! 爱问知识人...
- 出租车数据的地图展示
- 服务器系统都有哪些?
- 【项目实战19】k8s(5)—service服务(IPVS均衡负载)
- python股票分析-放量跌到底买入-涨了再卖
- appium java 虫师_appium新手入门(9)—— appium API 之应用操作
- 盛邦安全发布首个网络空间地图——网络空间坤舆图,为新基建提供数字安全底图
- Linux 查看进程启动时间、运行时间
热门文章
- Python中的星号:用途及使用方法(下篇)
- 计算机视觉论文-2021-05-11
- EfficientNet 解析:卷积神经网络模型尺度变换的反思
- 卷积神经网络CNN是靠什么线索学习到深度信息的?
- C++ Primer 第五版 第6章 6.1——函数及函数定义及调用阅读笔记
- C++ vector类型要点总结(以及各种algorithm算法函数)
- html打开显示脚本错误,IE浏览器显示脚本错误怎么办 IE浏览器脚本错误解决方法图文教程...
- visio防火墙可以连接什么_Visio类似的高性价比的替代软件
- Ubuntu Docker 安装
- 三阶段dea模型 matlab源程序,三阶段DEA模型SFA二阶段剔除过程