您的位置:首页 > 其它

dom4j之xpath

2015-12-15 21:18 316 查看
XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。
     XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。

     推荐一个挺不错的网站:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html  里面有很不错的例子,下面的例子中红色字体表示使用对应语法获取的元素(或属性)。

        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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: