XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。
XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。
推荐一个挺不错的网站:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html 里面有很不错的例子,下面的例子中红色字体表示使用对应语法获取的元素(或属性)。
上一篇学习XPath 使用路径表达式在 XML 文档中选取节点。斜线”/”是从根节点选择,双斜线”//”从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置,点”.”选取当前节点,两点”..”选取当前节点的父节点,“@”为选取属性。
谓语在XPath是重要的一部分,谓语用来查找某个特定的节点或者包含某个指定的值的节点。谓语被嵌在方括号中。
1、选择AAA下的第一个BBB元素 语法:/AAA/BBB[1]
<AAA>
<BBB/>
<BBB/>
<BBB/>
<BBB/>
</AAA>
2、选择AAA下的最后一个BBB元素 语法:/AAA/BBB[last()]
<AAA>3、选择AAA下的倒数第二个BBB元素 语法:/AAA/BBB[last()-1]
<AAA>4、选择AAA下的前面两个BBB元素 语法:/AAA/BBB[position()<3]
<AAA>
<BBB/>
<BBB/>
<BBB/>
<BBB/>
</AAA>
5、获取AAA下的BBB下的有s属性的CCC元素 语法:/AAA/BBB/CCC[@s]
<AAA>
<BBB>
<CCC s = "1"/>
<CCC s = "2"/>
<CCC s = "3"/>
<CCC s = "4"/>
<CCC s = "5"/>
<CCC r = "a"/>
</BBB>
<CCC>
<BBB r = "a"/>
<BBB r = "b"/>
<BBB r = "c"/>
</CCC>
<BBB/>
<BBB/>
</AAA>
6、选取所有 bookstore 元素的 book 元素,且其中的 price 元素的值须大于 35.00。 语法:bookstore/book[price>35.00]
<bookstore>
<book>
<title land="eng">Book1</title>
<price>29.99</tilte>
</book>
<book>
<title land="eng">Book2</title>
<price>39.55</tilte>
</book>
</bookstore>
7、选取所有 bookstore 元素中的 book 元素的 title 元素,且其中的 price 元素的值须大于 35.00. 语法:/bookstore/book[price>35.00]/title
<bookstore>
<book>
<title land="eng">Book1</title>
<price>29.99</tilte>
</book>
<book>
<title land="eng">Book2</title>
<price>39.55</tilte>
</book>
</bookstore>
本篇学习了XPath的谓语,更复杂的谓语结合其他XPath函数使用。