XPath學習:軸(3)——descendant

weixin_34126215發表於2016-04-26

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

相關文章