XPath(全称 XML Path Language)是一种用于遍历 XML 文档的查询语言。它于 1999 年首次推出,旨在为访问 XML 文档中的元素提供一种标准方法。该语言围绕“路径”这一概念构建,用于根据元素在文档中的位置来选择特定元素。
XPath 的一个关键特征是它使用路径表示法。这种表示法允许你根据元素在文档树中的位置来选择它们。例如,在 HTML 文档中,路径 "html/body/p" 将选择所有作为 body 元素直接子元素的 p 元素,而 body 元素本身又是 html 元素的直接子元素。
XPath 的语法非常简单:
//tagname[@attribute='value']
其中 'tagname' 代表您要查找的 HTML 元素类型(例如 div、a、p),'attribute' 是目标 HTML 元素的属性,定位器将以此进行搜索(例如 class),而 'value' 则是您希望匹配的具体值
CSS 选择器(全称层叠样式表)用于根据元素的属性(如 class、id 和属性)来选择元素。它们比 XPath 更易于阅读和理解,但在浏览文档方面的能力有限。CSS 选择器主要用于样式设置和布局,但您也可以使用它们从网页中提取信息:
<html> <body> <p class="highlight">Hello, world!</p> </body> </html>
|
若要使用 CSS 选择器选中“Hello, world!”这行文本,我们需要借助 JavaScript:
let p_tag = document.querySelector(“p.highlight”)
let p_text = p_tag.innerText
另一方面,XPath 专为提供 XML 文档的查询语言而设计,并自带丰富的内置函数。这些函数可用于执行计算并从元素中提取特定信息。例如,使用 XPath 的 text() 函数,您可以直接选取元素的文本值:
<html> <body> <p>Hello, world!</p> </body> </html>
若要使用 XPath 中的 text() 函数选择文本“Hello, world!”,表达式应为:
/html/body/p/text()