| 表达式 | 描述 |
|---|---|
| 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])’) - 选取多个路径使用 | 运算符
本文深入解析XPath查询语言,涵盖从基本节点选取到复杂属性过滤的全面指南。通过实例演示如何利用XPath精确选取XML文档中的特定元素,包括选取首个、最后一个、带有特定属性的元素,以及如何使用通配符进行灵活匹配。

2597

被折叠的 条评论
为什么被折叠?



