# XPath 在线测试 - CSS 选择器测试与自动生成选择器

> 免费在线测试 XPath 1.0 与 CSS 选择器：粘贴 XML/HTML 即时高亮匹配节点，支持命名空间前缀、count() 等函数结果，点击节点自动生成最短唯一 XPath 与 CSS 选择器。

- 网址: https://qilingtools.com/zh/xpath-tester
- 分类: 开发工具 (https://qilingtools.com/zh/dev)
- 标签: [开发](https://qilingtools.com/zh/tags/dev), [前端网页](https://qilingtools.com/zh/tags/frontend)
- 最后更新: 2026-10-26
- 价格: 免费，无需注册
- 隐私: 在浏览器本地处理，文件不上传服务器

写爬虫、做自动化测试或处理 XML 配置时，经常要反复调试一条 XPath 或 CSS 选择器。把 XML 或 HTML 粘贴进来（会自动识别类型，也可以手动切换），输入表达式即可实时看到结果：匹配到的元素、属性和文本节点会在格式化后的源码视图里高亮，右侧列出每个匹配的绝对路径、属性和文本内容。XPath 使用浏览器内置的 XPath 1.0 引擎，除节点集外，count()、sum()、string()、boolean() 等函数的数值、字符串、布尔结果也会直接显示。带默认命名空间的文档（如 Atom、SVG、SOAP、Maven pom.xml）在 XPath 1.0 里必须用前缀访问——工具会自动收集文档中的命名空间声明并为默认命名空间分配 ns 前缀，你也可以自行增删前缀映射。反过来，点击源码视图里的任意元素、属性或文本，工具会生成多条经过验证、只匹配这一个节点的 XPath 和 CSS 选择器，优先使用 id、属性、文本等稳定特征，最短的排在最前，一键填回表达式或复制。附带 XPath 与 CSS 速查表和三个示例文档。所有解析都在浏览器本地完成，内容不会上传。

## 使用步骤

1. 粘贴 XML 或 HTML，或点击示例载入
2. 选择 XPath 或 CSS，输入表达式，查看高亮与匹配列表；有默认命名空间时使用前缀
3. 点击源码中的节点，复制自动生成的唯一 XPath / CSS 选择器

## 功能特点

- XPath 1.0 与 CSS 选择器（含 :has()、:nth-of-type 等）
- 格式化源码视图中高亮全部匹配
- 数值 / 字符串 / 布尔类型的函数结果
- 自动收集命名空间并可编辑前缀映射
- 点击节点生成最短唯一 XPath 与 CSS 选择器
- 匹配列表显示路径、属性与文本
- XML 与 HTML 自动识别，显示解析错误
- XPath / CSS 速查表，点击即试

## 常见问题

### 为什么 //entry 在 Atom / SVG 文档里匹配不到？

这类文档用 xmlns="…" 声明了默认命名空间，而 XPath 1.0 中不带前缀的名称只匹配“没有命名空间”的元素。请使用工具自动分配的前缀，例如 //ns:entry/ns:title；或者写成 //*[local-name()='entry'] 忽略命名空间。CSS 选择器不受这个限制。

### 生成的选择器可靠吗？

每一条生成结果都会在当前文档里实际执行一次，确认只匹配被点击的那个节点才会显示。工具优先使用 id、name、class、data-* 等属性或短文本，其次从最近的可唯一定位的祖先出发，最后才退回带序号的绝对路径。不过网页结构变化后选择器可能失效，带序号的路径最脆弱。

### 支持 XPath 2.0 / 3.0 吗？

不支持。浏览器只内置 XPath 1.0，因此 matches()、lower-case()、序列表达式等 2.0 以上的函数不可用。常用的 contains()、starts-with()、normalize-space()、translate()、count()、sum()、position()、last() 以及各种轴（ancestor、following-sibling 等）都可以使用。

### HTML 模式下路径为什么多了 /html/body？

浏览器解析 HTML 时会自动补全 <html>、<head>、<body> 并把标签名转成小写，这与 Chrome 开发者工具、Selenium、Playwright 看到的 DOM 一致，所以生成的选择器可以直接用在这些工具里。如果需要严格按原样解析，请把文档类型切换为 XML（要求格式良好）。

## 相关工具

- [JSON 格式化](https://qilingtools.com/zh/json): 免费在线 JSON 格式化：一键美化、压缩，实时语法校验并定位到出错行列，支持树形视图折叠、键名排序、转义与去转义、Unicode 转中文、复制下载，数据不上传。
- [Base64 编解码](https://qilingtools.com/zh/base64): 免费在线 Base64 编码解码工具：支持中文 UTF-8、URL 安全变体，文本与 Base64 互转，实时转换，本地处理不上传。
- [URL 编解码](https://qilingtools.com/zh/url-encode): 免费在线 URL 编码解码工具：encodeURIComponent 与 encodeURI 两种模式，处理中文、空格与特殊符号，本地实时转换不上传。
- [JWT 解析](https://qilingtools.com/zh/jwt): 免费在线 JWT 解析工具：解码 JWT 的 Header 与 Payload，展示过期时间、签发时间等，本地解析不上传，保护令牌安全。
- [时间戳转换](https://qilingtools.com/zh/timestamp): 免费在线 Unix 时间戳转换工具：时间戳与日期互转，自动识别秒/毫秒，显示本地时间、UTC、ISO 8601 和相对时间，实时更新。
- [哈希计算](https://qilingtools.com/zh/hash): 免费在线哈希/摘要计算工具：对文本或文件计算 SHA-1、SHA-256、SHA-384、SHA-512，使用浏览器加密接口本地完成，文件不上传。
- [UUID 生成](https://qilingtools.com/zh/uuid): 免费在线 UUID 生成器：使用加密安全随机数批量生成符合 RFC 4122 的 UUID v4，可大写、去连字符、加花括号，一键复制。
- [进制转换](https://qilingtools.com/zh/base-convert): 免费在线进制转换工具：二进制、八进制、十进制、十六进制及任意 2–36 进制互转，支持大整数（BigInt），本地实时计算。
