Created
January 10, 2019 09:43
-
-
Save bswbatman/c2a4451ddd2af559096fe942983eef09 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[例1] | |
bookstore :选取 bookstore 元素的所有子节点。 | |
[例2] | |
/bookstore :选取根节点bookstore,这是绝对路径写法。 | |
[例3] | |
bookstore/book :选取所有属于 bookstore 的子元素的 book元素,这是相对路径写法。 | |
[例4] | |
//book :选择所有 book 子元素,而不管它们在文档中的位置。 | |
[例5] | |
bookstore//book :选择所有属于 bookstore 元素的后代的 book 元素,而不管它们位于 bookstore 之下的什么位置。 | |
[例6] | |
//@lang :选取所有名为 lang 的属性。 | |
四、xpath的谓语条件(Predicate) | |
所谓"谓语条件",就是对路径表达式的附加条件。 | |
所有的条件,都写在方括号"[]"中,表示对节点进行进一步的筛选。 | |
[例7] | |
/bookstore/book[1] :表示选择bookstore的第一个book子元素。 | |
[例8] | |
/bookstore/book[last()] :表示选择bookstore的最后一个book子元素。 | |
[例9] | |
/bookstore/book[last()-1] :表示选择bookstore的倒数第二个book子元素。 | |
[例10] | |
/bookstore/book[position()<3] :表示选择bookstore的前两个book子元素。 | |
[例11] | |
//title[@lang] :表示选择所有具有lang属性的title节点。 | |
[例12] | |
//title[@lang='eng'] :表示选择所有lang属性的值等于"eng"的title节点。 | |
[例13] | |
/bookstore/book[price] :表示选择bookstore的book子元素,且被选中的book元素必须带有price子元素。 | |
[例14] | |
/bookstore/book[price>35.00] :表示选择bookstore的book子元素,且被选中的book元素的price子元素值必须大于35。 | |
[例15] | |
/bookstore/book[price>35.00]/title :表示在例14结果集中,选择title子元素。 | |
[例16] | |
/bookstore/book/price[.>35.00] :表示选择值大于35的"/bookstore/book"的price子元素。 | |
五、通配符 | |
# "*"表示匹配任何元素节点。 | |
# "@*"表示匹配任何属性值。 | |
# node()表示匹配任何类型的节点。 | |
[例17] | |
//* :选择文档中的所有元素节点。 | |
[例18] | |
/*/* :表示选择所有第二层的元素节点。 | |
[例19] | |
/bookstore/* :表示选择bookstore的所有元素子节点。 | |
[例20] | |
//title[@*] :表示选择所有带有属性的title元素。 | |
六、选择多个路径 | |
用"|"选择多个并列的路径。 | |
[例21] | |
//book/title | //book/price :表示同时选择book元素的title子元素和price子元素。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment