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"]