XPATH XPath(XML Path Language)是一种用于在 XML 文档中查找信息的语言。它可以通过路径表达式选取 XML 文档中的元素或属性。在 XML 中,XPath 被广泛用于查询节点。 尽管 HTML 和 XML 有些不同,但它们有许多相似之处。主要的相似之处是它们的结构都遵循树形结构,并且都使用标记(标签)来组织内容。因此,XPath 也能够解析 HTML 文档。
为什么 XPath 能解析 HTML:
HTML 也是 XML 的一种变体: 虽然 HTML 语法上不完全符合 XML 的规范,但它的结构仍然遵循树形结构。元素可以有子元素、属性等,可以构成类似于 XML 的层级结构。 现代浏览器的 HTML 解析器(如 DOM(文档对象模型))会将 HTML 转换为一个标准的 DOM 树,类似于 XML 文档的树形结构。XPath 就是通过该树形结构来定位和查询元素的。
DOM 与 XPath 配合使用: 当你使用 XPath 查询 HTML 时,实际上是通过 DOM API 来操作的。浏览器会解析 HTML 文档并将其转换为一个 DOM 树,XPath 语法可以用来在这个 DOM 树上进行查询。 即使 HTML 存在一些不规范的部分(例如缺少结束标签),浏览器仍然能够通过容错机制生成一个合适的 DOM 树,XPath 可以在这个 DOM 树上进行查询。
HTML 的标准化: 即便 HTML 本身是宽松的,现代浏览器会对其进行宽容的解析,并生成符合 DOM 标准的树结构。即使 HTML 中的语法有问题,浏览器也会进行修复。因此,XPath 仍然可以在这个树状结构中进行查找。