zoukankan      html  css  js  c++  java
  • XPath学习:轴(3)——descendant

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

         XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。

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

         XPath轴(XPath Axes)可定义某个相对于当前节点的节点集:

         1、child  选取当前节点的所有子元素

         2、parent  选取当前节点的父节点

         3、descendant 选取当前节点的所有后代元素(子、孙等)

         4、ancestor  选取当前节点的所有先辈(父、祖父等)

         5、descendant-or-self  选取当前节点的所有后代元素(子、孙等)以及当前节点本身

         6、ancestor-or-self  选取当前节点的所有先辈(父、祖父等)以及当前节点本身

         7、preceding-sibling 选取当前节点之前的所有同级节点

         8、following-sibling 选取当前节点之后的所有同级节点

         9、preceding   选取文档中当前节点的开始标签之前的所有节点

         10、following   选取文档中当前节点的结束标签之后的所有节点

         11、self  选取当前节点

         12、attribute  选取当前节点的所有属性

         13、namespace 选取当前节点的所有命名空间节点

         descendant选取当前节点的所有后代元素(包括子节点、子孙节点…),descendant (后代)轴包含上下文节点的后代,一个后代是指子节点或者子节点的子节点等等。

         /descendant::*   选择文档根元素的所有后代.即所有的元素被选择

       <AAA>  
         <BBB>  
              <DDD>  
                   <CCC>  
                        <DDD/>  
                        <EEE/>  
                   </CCC>  
              </DDD>  
         </BBB>  
         <CCC>  
              <DDD>  
                   <EEE>  
                        <DDD>  
                             <FFF/>  
                        </DDD>  
                   </EEE>  
              </DDD>  
         </CCC>  
       </AAA>

        /AAA/BBB/descendant::*   选择/AAA/BBB的所有后代元素

      <AAA>  
         <BBB>  
              <DDD>  
                   <CCC>  
                        <DDD/>  
                        <EEE/>  
                   </CCC>  
              </DDD>  
         </BBB>  
         <CCC>  
              <DDD>  
                   <EEE>  
                        <DDD>  
                             <FFF/>  
                        </DDD>  
                   </EEE>  
              </DDD>  
         </CCC>  
      </AAA>

        //CCC/descendant::*   选择所有CCC元素的所有后代元素

      <AAA>  
         <BBB>  
              <DDD>  
                   <CCC>  
                        <DDD/>  
                        <EEE/>  
                   </CCC>  
              </DDD>  
         </BBB>  
         <CCC>  
              <DDD>  
                   <EEE>  
                        <DDD>  
                             <FFF/>  
                        </DDD>  
                   </EEE>  
              </DDD>  
         </CCC>  
      </AAA>

        //CCC/descendant::DDD  择所有以CCC为祖先元素的DDD元素

      <AAA>  
         <BBB>  
              <DDD>  
                   <CCC>  
                        <DDD/>  
                        <EEE/>  
                   </CCC>  
              </DDD>  
         </BBB>  
         <CCC>  
              <DDD>  
                   <EEE>  
                        <DDD>  
                             <FFF/>  
                        </DDD>  
                   </EEE>  
              </DDD>  
         </CCC>  
      </AAA>

    http://www.cnblogs.com/zhaozhan/archive/2009/09/10/1563728.html

  • 相关阅读:
    洛谷网校:图论:最小生成树和最短路
    洛谷网校:动态规划(二)单调队列优化 p1725,p3572
    洛谷网校:动态规划(一)树上DP p3574
    洛谷网校:树形问题
    ybt1217 棋盘问题(八皇后加强版)
    模拟赛(一)T117903 防疫工作安排
    模拟赛(一)T117901 共享电动车
    洛谷网校:数论(二)
    洛谷网校:数论(一)
    双倍快乐:两个八皇后:ybt1213&ybt1214
  • 原文地址:https://www.cnblogs.com/wicub/p/5436663.html
Copyright © 2011-2022 走看看