XPath 节点学习笔记

什么是 XPath?

XPath 是一种用于选择 XML 文档中特定部分的查询语言。它由 W3C 组织定义,并且是 XSLT 标准的一部分。

通过 XPath,您可以在 XML 文档中确定某个节点或节点集合的位置,并且可以在这些节点上执行相应的操作。

XPath 表达式

XPath 表达式用于选择 XML 文档中的节点。它由一系列路径表达式组成,路径表达式用于描述节点之间的关系和位置。

路径表达式可以包含以下几种内容:

  • 节点名称
  • 节点类型
  • 轴(用于确定要选择哪些节点)
  • 运算符(如等于、小于等)

以下是 XPath 中常用的轴:

  • 子代轴(child):选取当前节点的所有子元素。
  • 后代轴(descendant):选取当前节点的所有后代元素,不包括当前节点。
  • 祖先轴(ancestor):选取当前节点的所有先辈元素,不包括当前节点。
  • 兄弟轴(sibling):选取当前节点的所有兄弟元素。
  • 祖先或自己轴(ancestor-or-self):选取当前节点及其先辈元素。
  • 后代或自己轴(descendant-or-self):选取当前节点及其后代元素。

以下是一些 XPath 表达式的示例:

  • 选取所有 book 元素://book
  • 选取 book 元素下的所有 author 元素://book/author
  • 选取 bookstore 元素的所有子元素:/bookstore/*
  • 选取第二个 book 元素://book[2]

实例

以下是一个包含了书籍信息的 XML 文档:

xmlCopy Code
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book category="web"> <title lang="en">Learning XPath</title> <author>John Smith</author> <year>2022</year> <price>19.99</price> </book> <book category="programming"> <title lang="en">Python Programming</title> <author>Michael Jackson</author> <year>2021</year> <price>39.95</price> </book> </bookstore>

以下是一些使用 XPath 表达式选择节点的示例:

  • 选取所有 book 元素://book
  • 选取 bookstore 元素下的所有子元素:/bookstore/*
  • 选取所有 title 元素://title
  • 选取 category 为 programming 的 book 元素://book[@category="programming"]