我的XPath笔记

我自己常用的 :

①、/节点1/节点2.../节点n   :获取这个全路径下所有名字为 节点n的节点,返回一个集合

②、child::book  :选取所有属于当前节点的子元素的 book 节点


RT,学习一篇博客所做的笔记,留做存根


Xpath写法名称 涵义 用法示例
普通的写法:
nodename 选取此节点的所有子结点
/ 从根结点选取
// 从匹配选择的当前结点选择文档中的结点 ,而不考虑它们的位置
. 选取当前结点
.. 选取当前结点的父结点
@ 选取属性
通配符:
* 匹配任何元素结点 /bookstore/* :选取bookstore元素的所有子元素
//* : 选取文档中的所有元素
@* 匹配任何属性结点 //title[@*] :选取所有带有属性的title元素
node() 匹配任何类型的结点
谓词: 都是举例说明
/bookstore/book[1] 选取属于bookstore子元素的第一个book元素
/bookstore/book[last()] 选取属于bookstore子元素的最后一个book元素
/bookstore/book[last()-1] 选取属于bookstore子元素的倒数第二个book元素
/bookstore/book[position()<3] 选取属于bookstore子元素的前面两个book元素
//title[@lang] 选取拥有名为lang属性的title元素
//title[@lang='eng'] 选取所有的拥有 lang="eng" 属性的title元素
/bookstore/book[price>35.00] 选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00
/bookstore/book[price>35.00]/title 选取 bookstore 元素中的 book 元素的所有 title 元素,且其中book元素的price元素的值须大于35.00。
选取多个路径
//book/title | //book/price 选取 book 元素的所有 title 和 price 元素
//title | //price 选取文档中的所有 title 和 price 元素
/bookstore/book/title | //price 选取属于 bookstore 元素的 book 元素的所有 title 元素,以及文档中所有的 price 元素
使用当前结点的相对位置
child::book 选取所有属于当前节点的子元素的 book 节点
attribute::lang 选取当前节点的 lang 属性
child::* 选取当前节点的所有子元素
attribute::* 选取当前节点的所有属性
child::text() 选取当前节点的所有文本子节点
child::node() 选取当前节点的所有子节点
descendant::book 选取当前节点的所有 book 后代
ancestor::book 选择当前节点的所有 book 先辈
ancestor-or-self::book 选取当前节点的所有 book 先辈以及当前节点(如果此节点是 book 节点)
child::*/child::price 选取当前节点的所有 price 孙节点

你可能感兴趣的:(我的XPath笔记)