XPath测试工具
在线测试和验证XPath表达式,即时查看结果
匹配结果
结果详情
快捷模板
XPath测试工具使用指南
XPath基础概念
XPath(XML路径语言)是一种用于在XML和HTML文档中选取节点的查询语言。它使用路径表达式在文档树结构中导航元素和属性,工作方式类似于文件系统路径。
绝对路径
/html/body/div
从根节点开始选取。当您清楚文档的确切结构时使用此方式。
相对路径
//div[@class='content']
在文档任意位置选取节点。更加灵活,也是最常用的方式。
XPath语法参考
选择表达式
| 表达式 | 说明 |
|---|---|
/ |
从根节点选取(绝对路径) |
// |
在当前上下文以下任意位置选取节点(相对路径) |
. |
选取当前节点 |
.. |
选取当前节点的父节点 |
@ |
选取属性 |
* |
匹配任意元素节点 |
谓词(过滤条件)
| 表达式 | 说明 |
|---|---|
[1] |
选取第一个元素 |
[last()] |
选取最后一个元素 |
[@attr] |
选取具有指定属性的元素 |
[@attr='val'] |
选取属性值等于指定值的元素 |
[position()<3] |
选取位置小于3的元素 |
常用函数
text()
选取节点的文本内容
contains()
检查字符串是否包含子串
starts-with()
检查字符串是否以指定前缀开头
normalize-space()
去除前后空白字符
count()
计算节点数量
not()
条件为假时返回真
XPath实用示例
选取外部链接
//a[@href and contains(@class, 'external')]
查找所有具有href属性且class中包含'external'的锚点元素。
选取表格数据(跳过表头)
//table//tr[position() > 1]/td[1]
选取每行表格的第一个单元格,排除表头行。
提取可见文本内容
//*[not(self::script) and not(self::style)]//text()
获取所有文本节点,但排除script和style元素内的内容。
XPath轴
轴定义了当前节点与文档树中其他节点之间的关系,允许在任意方向上进行导航。
ancestor::
选取所有祖先节点(父节点、祖父节点等)
descendant::
选取所有后代节点(子节点、孙节点等)
following-sibling::
选取当前节点之后的所有同级节点
preceding-sibling::
选取当前节点之前的所有同级节点
child::
选取当前节点的所有子节点
parent::
选取当前节点的父节点