目录:
一.XPath基本概述
二.XPath 的基本用法
三.XPath的基本语法
内容:
一.XPath基本概述
XPath 是一门在 XML 文档中查找信息的语言,它是 XSL Transformations (XSLT) 中的主要元素,也是 XQuery 和 XPointer 的基础。XPath 使用路径表达式在 XML 文档中进行导航,通过一系列函数和操作来选取、过滤和操作数据。
二.XPath 的基本用法
1. XPath 术语:
节点 (Node):XPath 中的数据以树状结构组织,每个节点表示一个数据项。
路径表达式 (Path expression):XPath 使用路径表达式来选取节点,例如:/bookstore/book。
轴 (Axis):XPath 有三种轴:根轴 (root axis)、祖先轴 (ancestor axis) 和后代轴 (descendant axis)。
函数 (Function):XPath 提供了一系列函数,用于操作节点和属性,例如:count()、sum() 和 substring()。
获取 HTML 的 XPath:
手动分析:通过观察 HTML 结构,手动编写 XPath 表达式。
浏览器生成:一些浏览器提供了生成 XPath 的功能,例如 Chrome 开发者工具。
2.应用 XPath 提取内容:
// 定位根节点://bookstore。
/ 往下层寻找:/bookstore/book。
提取文本内容://text()。
提取属性内容://@xxxx,例如://book[@id='101']。
3.构造 XPath 查询器:
对于 XML 文档,可以使用 DOMParser 创建 DOM 对象,然后创建 DOMXPath 对象。
对于 HTML 文档,可以使用 Similar DOM Layout 或其他库将 HTML 转换为 DOM 对象,然后创建 DOMXPath 对象。
4.使用 XPath 查询:
使用 query() 方法执行 XPath 表达
三.XPath的基本语法
1.选择节点:
使用斜线 / 或者反斜线 ../ 来选择节点。例如:
(1)/bookstore:选择根节点 bookstore。
(2)../bookstore:选择当前节点的父节点 bookstore。
(3)/bookstore/book:选择 bookstore 节点下的所有 book 节点。
(4)../bookstore/book:选择当前节点的祖父节点 bookstore 下的所有 book 节点。
2.选择属性:
在节点选择表达式后,使用 符号来选择节点的属性。例如:
//book[@id='101']/title:选择 id 为 "101" 的书的标题。
3.选择子节点:
使用 // 符号来选择当前节点的所有子节点。例如:
//book:选择所有 book 节点。
4.选择父节点:
使用 .. 符号来选择当前节点的父节点。例如:
book/../bookstore:选择 book 节点的父节点 bookstore。
5.选择兄弟节点:
使用 // 符号来选择当前节点的所有兄弟节点。例如:
//book:选择所有兄弟 book 节点。
6.选择祖先节点:
使用 ancestor 轴来选择当前节点的祖先节点。例如:
ancestor::bookstore:选择当前节点的祖先 bookstore 节点。
7.选择后代节点:
使用 descendant 轴来选择当前节点的后代节点。例如:
descendant::book:选择当前节点的所有后代 book 节点。
8.使用函数:
XPath 提供了一系列函数,用于操作节点和属性。例如:
(1)count(//book):计算所有 book 节点的数量。
(2)sum(//book/price):计算所有 book 节点的 price 属性之和。
(3)substring(//book/title, 1, 5):提取所有 book 节点的标题的前 5 个字符。
9.使用运算符:
XPath 提供了一些运算符,用于组合路径表达式或对节点进行操作。例如:
(1)//book[title/text()='harry potter']:选择标题包含 "harry potter" 的 book 节点。
(2)//book[price>100]:选择价格大于 100 的 book 节点。