XPath學習記錄——part 2

.Xpath的語法

   1,以“/”開頭的XPath表達式爲絕對路徑,從文檔節點開始;否則爲相對路徑表達式,從當前結點開始。

   2,可以使用“//”表示當前節點下的所有元素;若以“//”開頭,則表示文檔中所有的元素  EX.“//section”表示文檔中所有的section元素

  3,滿足一個XPath路徑表達式的節點可能有多個。

 

位置路徑表達式分爲先對位置路徑表達式和絕對位置路徑表達式,絕對位置路徑表達式以“/”開頭,後跟相對位置路徑表達式或是簡寫的絕對位置路徑表達式;相對位置路徑表達式由多個步進(step)構成EX.step1/step2/step3

每個step由三個部分組成,軸標識符+節點測試+零個或多個判定謂詞

   (1)關係軸標識符

      共有13種,每一種關係軸表示從當前節點出發向某個方向進行查找。

      ancestor:XML文檔樹中,查找從文檔節點到當前節點所經過的路徑上的所有節點,不包括當前節點。

      ancestor-or-self:表示ancestor關係軸查找結果,加上當前節點。

      descendant:表示以當前節點爲根的子樹中所有節點,不包括當前節點。

      descendant-or-self:表示descendant關係軸查找結果,加上當前節點。

      child:表示查找當前節點所有的子節點。

      parent:表四查找當前節點的父節點。

      following:表示查找當前節點之後的節點,換句話說,這些節點的開始標記和結束標記都在當前節點結束標記之後。

      preceding:表示查找當前節點之前的節點,換句話說,這些節點的開始標記和結束標記都在當前節點開始標記之前。

      following-sibling:表示查找當前節點後的兄弟節點。

      preceding-sibling:表示查找當前節點前的兄弟節點。

      self:查找當前節點本身。

      namespace:查找當前節點命名空間。

      attribute:查找當前節點的屬性。

      使用關係軸時應在關係軸名稱後面加上“::”。

 

    (2)節點測試

      節點測試NodeTest可以是名稱測試或者類型測試。

      名稱測試表示根據指定的名稱對當前節點進行測試,類型測試則允許根據節點的類型以及在Schema中定義的數據類型進行測試(僅適用於元素和屬性節點)。

     可使用通配符“*”,可以匹配所有的元素節點  EX./library/book/*  表示book中所有的子元素節點,不管節點的具體名稱是什麼。

 

    (3)判定謂詞

      判定謂詞使用方括號[…]的形式進行表示,用於對指定關係軸的,滿足節點測試的所有節點,使用判定謂詞中規定的條件進行篩選。如果判定謂詞部分爲一個整數i,表述選擇序列中的第i個元素。

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