Skip to main content

XPath示例

基础语法

//语法

//可以让你取得某一特定类型的元素, 而无需考虑其所在的层次结构。

例如 //p 将会选择所有的p元素,//a则会选择所有的链接。

@语法

符号@可以用来访问属性,例如//a/@href将会选择所有链接下的href属性。

text()函数

通过使用text()函数,可只选取文本。例如//a/text()将会选择所有链接下的文本。

*符号

可以使用*符号来选择指定层级的所有元素。例如//div/*

常见示例

获取id为firstHeading的h1标签下span中的text。

//h1[@id="firstHeading"]/span/text()

获取id为toc的div标签内的无序列表(ul) 中所有链接URL。

//div[@id="toc"]/ul//a/@href

获取class属性包含ltr以及class属性包含skin-vector的任意元素内所有标题元素(h1) 中的文本。

//*[contains(@class,"ltr") and contains(@class,"skin-vector")]//h1//text()

选择class属性值为infobox的表格中第一张图片的URL。

//table[@class="infobox"]//img[1]/@src

选择class属性以reflist开头的div标签中所有链接的URL。

//div[starts-with(@class,"reflist")]//a/@href

选择子元素包含文本References的元素之后的div元素中所有链接的URL。

//*[text()="References"]/../following-sibling::div//a

获取页面中每张图片的URL。

//img/@src

选择子元素文本包含Next的元素链接。

//a[contains(text(),'Next')]/@href