XPath 在线测试工具 - XML/HTML 表达式查询

XPath 工具

XML / HTML 文档
XPath 表达式
查询结果

输入 XML 和 XPath 表达式开始查询

历史记录

暂无记录
📘 XPath 基础知识

什么是 XPath?

XPath(XML Path Language)是一种用于在 XML 或 HTML 文档中定位节点的查询语言。它使用路径表达式来选取文档中的节点或节点集,广泛应用于数据提取、网页解析、XML 处理和自动化测试等领域。XPath 不仅支持纯 XML 文档,也能处理 HTML 文档,是现代 Web 开发和数据处理中不可或缺的工具。XPath 1.0 由 W3C 在 1999 年发布,随后发展为 XPath 2.0、3.0 和最新的 XPath 3.1 标准,支持更多数据类型和功能。

📋 XPath 常用表达式速查

表达式说明示例
/绝对路径,从根节点开始/bookstore/book
//相对路径,从当前节点向下选择//book/title
.当前节点./@id
..父节点../parent
@选取属性@class, @href
*匹配任何元素节点/*
node()匹配任何类型的节点/*/*[node()]
[n]选取第 n 个子元素book[1]
[last()]选取最后一个子元素book[last()]
[position()<n]位置条件筛选book[position()<3]
[@attr]选取具有指定属性的节点//*[@id='main']
[text()=]选取具有指定文本内容的节点//title[text()='Hello']

📋 使用建议和最佳实践

  • 使用 //(相对路径)比 /(绝对路径)更灵活,因为它不依赖于文档的顶层结构
  • 对于复杂的 XPath 表达式,建议先用本工具的"示例"功能加载测试数据,再逐步构建表达式
  • 使用 [@* 可以快速定位有属性的节点,使用 [text()= 可以根据文本内容查找元素
  • XPath 轴(Axis)如 ancestordescendantfollowing-sibling 可以实现更复杂的导航操作
  • 对于 HTML 文档,注意处理标签大小写问题,建议使用 translate() 函数进行大小写无关匹配
  • 定期使用本工具的"常用 XPath"库中的模板,避免重复编写常见的查询表达式

工具介绍

XPath 在线测试工具是一款强大的 XML/HTML 节点查询利器,支持实时表达式测试、匹配结果高亮、常用表达式库等功能。无论您是数据分析师需要从网页提取信息,还是开发者调试 XML 查询语句,本工具都能提供便捷高效的调试体验。内置丰富的常用 XPath 表达式模板,涵盖元素选择、属性查询、文本匹配等常见场景,支持格式化、历史记录等功能。

使用方法

  1. 1
    输入 XML/HTML 文档

    在左侧编辑框中输入或粘贴您的 XML/HTML 文档内容,可以点击"格式化"按钮自动格式化文档结构。

  2. 2
    输入 XPath 表达式

    在右侧的 XPath 输入框中输入您的查询表达式,或使用"常用 XPath"库中的预设模板快速填充。

  3. 3
    查看查询结果

    工具会实时显示匹配结果,包括节点类型(元素、属性、文本)、节点名称和具体内容。点击结果项可单独复制。

  4. 4
    使用历史记录

    所有查询的历史记录会自动保存,点击历史记录可以快速恢复之前的 XPath 表达式和对应的文档内容。

使用技巧

  • 使用右侧<strong>"常用 XPath"</strong>库可以快速套用预置的 XPath 表达式模板,避免从零编写
  • 点击<strong>"示例"</strong>按钮可以加载预设的测试数据,快速体验 XPath 查询功能
  • 在 XPath 中使用 <code>@</code> 符号可以选择属性,如 <code>//img/@src</code> 选取所有图片的 src 属性
  • 使用 <code>text()</code> 函数可以匹配文本内容,如 <code>//title[text()="Hello"]</code>
  • 本工具支持 CodeMirror 编辑器的<strong>格式化</strong>和<strong>换行切换</strong>功能,提升编辑体验
  • 定期查看<strong>"历史记录"</strong>面板,可以快速回溯之前的查询操作

常见问题

XPath 和 CSS 选择器有什么区别?

XPath 和 CSS 选择器都可以用于选取 HTML/XML 文档中的节点,但它们有以下主要区别:<strong>方向性</strong>:XPath 支持向前和向后遍历(可以选取父节点和祖先节点),而 CSS 选择器只能向下遍历;<strong>文本匹配</strong>:XPath 可以直接通过 text() 函数匹配文本内容,CSS 选择器无法做到这一点;<strong>位置筛选</strong>:XPath 支持基于位置的筛选(如 [1]、[last()]),CSS 选择器虽然有 :nth-child() 但功能有限;<strong>轴导航</strong>:XPath 支持轴(Axis)操作如 ancestor、following-sibling 等,可以进行更复杂的导航。

如何在 HTML 中使用 XPath?

虽然 XPath 最初是为 XML 设计的,但它同样可以用于 HTML 文档。使用时需要注意:<strong>标签大小写</strong>:HTML 标签通常是小写的,XPath 匹配时需注意大小写;<strong>隐式标签</strong>:HTML 中有些标签是隐式嵌套的(如 <code><td></code> 必须在 <code><tr></code> 内),XPath 查询需要考虑文档的实际结构;<strong>DOCTYPE 影响</strong>:如果 HTML 文档包含 DOCTYPE,XPath 查询可能需要从 <code>/html</code> 或 <code>/DOCTYPE</code> 开始。本工具已经针对 HTML 文档的 XPath 查询进行了优化。

XPath 中的轴(Axis)有哪些常用类型?

XPath 轴用于定位相对于当前节点的节点集,常用轴包括:<strong>child</strong>:当前节点的子节点(默认轴);<strong>parent</strong>:当前节点的父节点;<strong>ancestor</strong>:当前节点的所有祖先节点;<strong>descendant</strong>:当前节点的所有后代节点;<strong>following-sibling</strong>:当前节点之后的同级节点;<strong>preceding-sibling</strong>:当前节点之前的同级节点;<strong>following</strong>:文档中当前节点之后的所有节点;<strong>preceding</strong>:文档中当前节点之前的所有节点。轴的语法格式为 <code>轴名::节点测试</code>,如 <code>ancestor::div</code>。

为什么我的 XPath 表达式没有返回结果?

XPath 表达式无结果的常见原因包括:<strong>路径不正确</strong>:检查 XPath 路径是否与文档结构匹配,可以使用本工具的"示例"功能验证;<strong>命名空间问题</strong>:如果 XML 文档使用了命名空间,需要在 XPath 中注册并使用命名空间前缀;<strong>标签大小写</strong>:XPath 是大小写敏感的,确保标签名完全匹配;<strong>索引从 1 开始</strong>:XPath 的索引从 1 开始而非 0,<code>[0]</code> 不会返回结果;<strong>属性选择错误</strong>:属性需要使用 <code>@</code> 前缀,如 <code>@class</code> 而非 <code>class</code>。

收起使用说明
更多推荐
查看更多
HTML 预览开发工具
YAML ↔ Properties开发工具
Cron 表达式开发工具
JSONPath 测试开发工具
JSON 转 Java开发工具
JSON ↔ CSV 互转开发工具
JSON ↔ XML 互转开发工具
XML 格式化开发工具