xpath語法

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>

   

    本篇主要學習XPath 使用路徑表達式在 XML 文檔中選取節點。斜線”/”是從根節點選擇,雙斜線”//”從匹配選擇的當前節點選擇文檔中的節點,而不考慮它們的位置,點”.”選取當前節點,兩點”..”選取當前節點的父節點,“@”爲選取屬性。



轉載自:http://www.cnblogs.com/zhaozhan/archive/2009/09/09/1563617.html





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章