xpath语法
1. 基本路径表达式
| 选取当前节点的所有子节点(包括元素、文本、属性等)。 |
|
| 从任意位置选取节点(全局搜索)。 |
|
| 选取当前节点。 |
|
| 选取当前节点的父节点。 |
|
| 选取属性节点( |
|
2. 谓语(Predicates)
用于筛选节点,用方括号 []
包裹条件:
| 选取第一个 |
| 选取最后一个 |
| 选取 |
| 选取所有 |
| 选取 |
3. 通配符
| 匹配任意元素节点。 |
|
| 匹配任意属性节点。 |
|
| 匹配任意类型的节点(元素、文本、注释等)。 |
|
4. 轴(Axes)
用于选取相对于当前节点的特定节点:
| 选取当前节点的所有子节点(默认轴,可省略)。 |
|
| 选取当前节点的父节点。 |
|
| 选取当前节点的所有后代节点(子节点、孙节点等)。 |
|
| 选取当前节点的所有祖先节点(父节点、祖父节点等)。 |
|
| 选取当前节点之后的所有同级节点。 |
|
| 选取当前节点之前的所有同级节点。 |
|
5. 运算符
| 逻辑与 |
|
| 逻辑或 |
|
| 加法 |
|
| 等于 |
|
| 不等于 |
|
实战示例
假设XML结构如下:
<bookstore> <book category="IT"> <title lang="en">Java Programming</title> <price>49.99</price> </book> <book category="Science"> <title lang="zh">量子物理导论</title> <price>69.99</price> </book> </bookstore>
| 所有 |
| 类别为 |
| 文本包含 |
| 价格超过50的书籍的 |
总结
XPath 是定位 XML/HTML 节点的强大工具,核心语法可概括为:
- 路径选择:
/
(子节点)、//
(任意位置)、.
(当前节点)、..
(父节点)。 - 条件筛选:用
[]
加谓语(如[position()=1]
、[@attr='value']
)。 - 轴与通配符:处理复杂关系(如
following-sibling
)和模糊匹配(*
)。
面试时可举例:“若要定位淘宝商品列表中价格大于100元的商品名称,可用 //div[@class='item']/span[price>100]/name
。”