Xml中SelectSingleNode方法中的xpath用法

  1. 最常见的XML数据类型有:Element,Attribute,Comment,Text.
  2. Element,指形如<Name>Tom>的节点。它可以包括:Element,Text,Comment,ProcessingInstruction,CDATA,andEntityReference.
  3. Attribute,指在Employee>中的粗体部分。
  4. Comment,指形如:<!--mycomment-->的节点。
  5. Text,指在>的粗体部分。
  6. 在XML中,可以用XmlNode对象来参照各种XML数据类型。
  7. 2.1查询已知绝对路径的节点(集)
  8. objNodeList=objDoc.SelectNodes(“Company/Department/Employees/Employee”)
  9. 或者
  10. objNodeList=objNode.SelectNodes(“/Company/Department/Employees/Employee”)
  11. 以上两种方法可返回一个NodeList对象,如果要返回单个节点可使用SelectSingleNode方法,该方法如果查询到一个或多个节点,返回第一个节点;如果没有查询的任何节点返回Nothing。例如:
  12. objNode=objNode.SelectSingleNode(“/Company/Department/Employees/Employee”)
  13. IfNot(objNodeisNothing)then
  14. ‘-Doprocess
  15. EndIf
  16. 2.2查询已知相对路径的节点(集)
  17. 可使用类似于文件路径的相对路径的方式来查询XML的数据
  18. objNode=objDoc.SelectSingleNode(“Company/Department”)
  19. objNodeList=objNode.SelectNodes(“../Department)
  20. objNode=objNode.SelectNode(“Employees/Employee”)
  21. 2.3查询已知元素名的节点(集)
  22. 在使用不规则的层次文档时,由于不知道中间层次的元素名,可使用//符号来越过中间的节点,查询其子,孙或多层次下的其他所有元素。例如:
  23. objNodeList=objDoc.SelectNodes(“Company//Employee”)
  24. 2.4查询属性(attribute)节点
  25. 以上的各种方法都返回元素(element)节点(集),返回属性(attribute),只需要采用相应的方法,在属性名前加一个@符号即可,例如:
  26. objNodeList=objDoc.SelectNodes(“Company/Department/Employees/Employee/@id”)
  27. objNodeList=objDoc.SelectNodes(“Company//@id”)
  28. 2.5查询Text节点
  29. 使用text()来获取Text节点。
  30. objNode=objDoc.SelectSingleNode(“Company/Department/Deparmt_Name/text()”)
  31. 2.6查询特定条件的节点
  32. 使用[]符号来查询特定条件的节点。例如:
  33. a.返回id号为10102的Employee节点
  34. objNode=objDoc.SelectSingleNode(“Company/Department/Employees/Employee[@id=’10102’]”)
  35. b.返回Name为ZhangQi的Name节点
  36. objNode=objDoc.SelectSingleNode(“Company/Department/Employees/Employee/Name[text()=’ZhangQi’]”)
  37. c.返回部门含有职员22345的部门名称节点
  38. objNode=objDoc.SelectSingleNode("Company/Department[Employees/Employee/@id='22345']/Department_Name")
  39. 2.7查询多重模式的节点
  40. 使用|符号可以获得多重模式的节点。例如:
  41. objNodeList=objDoc.SelectNodes(“Company/Department/Department_Name|Company/Department/Manager”)
  42. 2.8查询任意子节点
  43. 使用*符号可以返回当前节点的所有子节点。
  44. objNodeList=objDoc.SelectNodes(“Company/*/Manager)
  45. objNodeList=objNode.ChildNodes
  46. 3XML数据的编辑
  47. 3.1增加一个元素的属性(attribute)节点
  48. DimobjNodeAttrAsXmlNode
  49. objNodeAttr=objDoc.CreateAttribute("id",Nothing)
  50. objNodeAttr.InnerXml="101"
  51. objNode.Attributes.Append(objNodeAttr)
  52. 3.2删除一个元素的属性
  53. objNode.Attributes.Remove(objNodeAttr)
  54. 3.3增加一个子元素(Element)
  55. DimobjNodeChildAsXmlNode
  56. 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"
  57. objNode.AppendChild(objNodeChild)
  58. 3.4删除一个子元素
  59. objNode.RemoveChild(objNodeChild)
  60. 3.5替换一个子元素
  61. objNOde.ReplaceChild(newChild,oldChild)
  62. 4参考数据
  63. <?xmlversion="1.0"encoding="UTF-8"?>
  64. Company>
  65. 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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇