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