XML用法实例详解

墨蓝 2022-07-25 18:27 285阅读 0赞
  1. 最常见的XML数据类型有:Element, Attribute,Comment, Text.
  2. Element, 指形如Tom的节点。它可以包括:Element, Text, Comment, ProcessingInstruction, CDATA, and EntityReference.
  3. Attribute, 指在中的粗体部分。
  4. Comment,指形如: 的节点。

  5. Text,指在Tom的粗体部分。
  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. If Not (objNode is Nothing) then
  14. ‘- Do process
  15. End If
  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为Zhang Qi的Name 节点
  36. objNode = objDoc.SelectSingleNode(“Company/Department/Employees/Employee/Name[text()=’Zhang Qi’]”)
  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. 或者
  46. objNodeList = objNode.ChildNodes
  47. 3 XML数据的编辑
  48. 3.1 增加一个元素的属性(attribute)节点
  49. Dim objNodeAttr As XmlNode
  50. objNodeAttr = objDoc.CreateAttribute(“id”, Nothing)
  51. objNodeAttr.InnerXml = “101”
  52. objNode.Attributes.Append(objNodeAttr)
  53. 3.2 删除一个元素的属性
  54. objNode.Attributes.Remove(objNodeAttr)
  55. 3.3 增加一个子元素(Element)
  56. Dim objNodeChild As XmlNode
  57. objNodeChild = objDoc.CreateElement(Nothing, “ID”, Nothing)
  58. objNodeChild.InnerXml = “101”
  59. objNode.AppendChild(objNodeChild)
  60. 3.4 删除一个子元素
  61. objNode.RemoveChild(objNodeChild)
  62. 3.5 替换一个子元素
  63. objNOde.ReplaceChild(newChild,oldChild)
  64. 4 参考数据
  65. <?xml version=”1.0” encoding=”UTF-8”?>
  66. Cai WuBu
  67. Zhang Bin
  68. 12345
  69. Zhang Bin
  70. male
  71. 10101
  72. Zhang QI
  73. female
  74. 10102
  75. Zhang Xia
  76. male
  77. 10201
  78. ZhangChuang
  79. male
  80. 10202
  81. Zhang Jun
  82. male
  83. KaiFa Bu
  84. Wang Bin
  85. 22345
  86. Wang Bin
  87. male
  88. 20101
  89. Wang QI
  90. female
  91. 20102
  92. Wang Xia
  93. male
  94. 20201
  95. Wang Chuang
  96. male
  97. 20201
  98. Wang Jun
  99. male

发表评论

表情:
评论列表 (有 0 条评论,285人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Ngxs用法实例详解

    Ngxs简介 ngxs是angular的一个状态管理框架,可以全局的管理应用程序的所有状态。 使用的场景: 当应用程序的各个组件需要共享某些数据时 当需要

    相关 Oracle触发器用法实例详解

    一、触发器简介 触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。然后,触发器的触发条件其实在你定义的时