表达式 | 描述 |
---|---|
nnodename | 选取此节点的子节点 |
/ | 从根节点选取 |
// | 从匹配选择的当前节点选择文档中的节点,从而不考虑他们的位置 |
. | 选取当前节点 |
。。 | 选取当前节点的父节点 |
@ | 选取属性 |
- 查找当前节点的子节点
page.xpath(‘head’) - 从根节点进行查找
page.xpath(’/html’) - 从整个文档中所有节点查找
page.xpath(’//book’) - 选取当前节点的父节点
page.path(’//book’)[0].xpath(’…’) - 选取属性
page.xpath(’//book’)[0].xpath(’@category’)
表达式 | 结果 |
---|---|
nodename[1] | 选取第一个元素 |
nodename[last()] | 选取最后一个元素 |
nodename[last()-1] | 选取倒数第二个元素 |
nodename[position()❤️] | 选取前两个子元素 |
nodename[@lang] | 选取拥有名为lang的属性的元素 |
nodename[@lang=‘eng’] | 选取拥有lang属性,且值为eng的元素 |
- 选取第二个book元素
page.xpath(’//book[2]/@category’) - 选取倒数第三个元素
page.xpath(’//book[last()-2]/@category’) - 选取第二个元素开始的元素
page.xpath(’//book[position()>1]/@category’) - 选取catagory属性为WEB的元素
page.xpath(’//book[@category=“WEB”]/@category’)
通配符 | 描述 |
---|---|
* | 匹配任何元素节点 |
@* | 匹配任何属性节点 |
- 匹配第一个book元素下的所有元素
page.xpath(’//book[1]/*’) - 获取节点中的文本 text()
page.xpath(’//book[1]/author/text()’) - 用string()获取某个节点下的所有文本
page.xpath(‘string(//book[1])’) - 选取多个路径使用 | 运算符