XPath学习:基本语法

XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。

 1、斜线/从根节点选择,基本的XPath语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路径,获取满足该路径的所有节点:

      选择根元素   语法:/AAA 

     <AAA>  
     <BBB/>  
     <CCC/>  
     <BBB/>  
     <DDD>  
          <BBB/>  
     </DDD>  
     <CCC>  
          <DDD>  
               <BBB/>  
               <BBB/>  
          </DDD>  
     </CCC>  
   </AAA>

     选择AAA的所有CCC子元素  语法:/AAA/CCC

   <AAA>  
     <BBB/>  
     <CCC/>  
     <BBB/>  
     <DDD>  
          <BBB/>  
     </DDD>  
     <CCC>  
          <DDD>  
               <BBB/>  
               <BBB/>  
          </DDD>  
     </CCC>  
    </AAA>

        2、如果路径以双斜线 // 开头, 则表示选择文档中所有满足双斜线//之后规则的元素(无论层级关系),//会做全文档扫描。

      选择所有BBB元素  语法://BBB

   <AAA>  
     <BBB/>  
     <CCC/>  
     <BBB/>  
     <DDD>  
          <BBB/>  
     </DDD>  
     <CCC>  
          <DDD>  
               <BBB/>  
               <BBB/>  
          </DDD>  
     </CCC>  
   </AAA>

      选择所有父元素是DDD的BBB元素  语法://DDD/BBB

   <AAA>  
     <BBB/>  
     <CCC/>  
     <BBB/>  
     <DDD>  
          <BBB/>  
     </DDD>  
     <CCC>  
          <DDD>  
               <BBB/>  
               <BBB/>  
          </DDD>  
     </CCC>  
    </AAA>

      选择AAA的CCC的所有BBB元素  语法:/AAA/CCC//BBB

   <AAA>  
     <BBB/>  
     <CCC/>  
     <BBB/>  
     <DDD>  
          <BBB/>  
     </DDD>  
     <CCC>  
          <DDD>  
               <BBB/>  
               <BBB/>  
          </DDD>  
     </CCC>  
   </AAA>

     3、点“.” 选取当前节点。

     4、“..”选取当前节点的父节点。

     5、”@”选取属性。

      选择所有的id属性  语法://@id     注意:这里选取的是属性而不是方法。

   <AAA>  
     <BBB id = "b1"/>  
     <BBB id = "b2"/>  
     <BBB name = "bbb"/>  
     <BBB/>  
   </AAA>

     选择有id属性的BBB元素   语法://BBB[@id]   区别于上面的属性选择

  <AAA>  
     <BBB id = "b1"/>  
     <BBB id = "b2"/>  
     <BBB name = "bbb"/>  
     <BBB/>  
  </AAA>

    选择id属性为“id1”的BBB元素  语法://BBB[@id="b1"]

  <AAA>  
     <BBB id = "b1"/>  
     <BBB id = "b2"/>  
     <BBB name = "bbb"/>  
     <BBB/>  
  </AAA>

    选择有任意属性的BBB元素 语法://BBB[@*]

  <AAA>  
     <BBB id = "b1"/>  
     <BBB id = "b2"/>  
     <BBB name = "bbb"/>  
     <BBB/>  
  </AAA>

    选择不具有任何属性的BBB元素  语法://BBB[not(@*)]

  <AAA>  
     <BBB id = "b1"/>  
     <BBB id = "b2"/>  
     <BBB name = "bbb"/>  
     <BBB/>  
  </AAA>

   

    本篇主要学习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函数使用。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值