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