XPath学习:基本语法(二)

     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> 
     <BBB/> 
     <BBB/> 
     <BBB/> 
     <BBB/> 
   </AAA>

     3、选择AAA下的倒数第二个BBB元素  语法:/AAA/BBB[last()-1]

   <AAA> 
     <BBB/> 
     <BBB/> 
     <BBB/> 
     <BBB/> 
   </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函数使用。

  

 

你可能感兴趣的:(xpath)