前端之家收集整理的这篇文章主要介绍了
Xml中SelectSingleNode方法中的xpath用法,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
- 最常见的XML数据类型有:Element,Attribute,Comment,Text.
-
- Element,指形如<Name>Tom>的节点。它可以包括:Element,Text,Comment,ProcessingInstruction,CDATA,andEntityReference.
- Attribute,指在Employee>中的粗体部分。
- Comment,指形如:的节点。
- Text,指在>的粗体部分。
- 在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”)
- IfNot(objNodeisNothing)then
- ‘-Doprocess
- EndIf
- 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为ZhangQi的Name节点
- objNode=objDoc.SelectSingleNode(“Company/Department/Employees/Employee/Name[text()=’ZhangQi’]”)
- 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
-
- 3XML数据的编辑
- 3.1增加一个元素的属性(attribute)节点
- DimobjNodeAttrAsXmlNode
- objNodeAttr=objDoc.CreateAttribute("id",Nothing)
- objNodeAttr.InnerXml="101"
- objNode.Attributes.Append(objNodeAttr)
- 3.2删除一个元素的属性
- objNode.Attributes.Remove(objNodeAttr)
- 3.3增加一个子元素(Element)
- DimobjNodeChildAsXmlNode
- objNodeChild=objDoc.CreateElement(Nothing,"ID",108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> objNodeChild.InnerXml="101"
- objNode.AppendChild(objNodeChild)
- 3.4删除一个子元素
- objNode.RemoveChild(objNodeChild)
- 3.5替换一个子元素
- objNOde.ReplaceChild(newChild,oldChild)
- 4参考数据
- <?xmlversion="1.0"encoding="UTF-8"?>
- Company>
- DepartmentDepartment_Name>CaiWuBu</Manager>ZhangBinEmployeesEmployee_ID>12345Gender>maleEmployee>10101>ZhangQI>female>10102>ZhangXia>10201>ZhangChuang>10202>ZhangJunDepartment>KaiFaBu>WangBin>22345>20101>WangQI>20102>WangXia>20201>WangChuang>WangJun>
原文链接:https://www.f2er.com/xml/295981.html