最新的Web開發教程
 

XPath軸


XML實例文檔

我們將使用下面的XML文檔在下面的例子。

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

<book>
  <title lang="en">Harry Potter</title>
  <price>29.99</price>
</book>

<book>
  <title lang="en">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore>

XPath軸

的軸定義節點集合相對於當前節點的。

AXISNAME 結果
祖先 選擇所有祖先(parent, grandparent, etc.)當前節點的
祖先或自身 選擇所有祖先(parent, grandparent, etc.)當前節點的與當前節點本身
屬性 選擇當前節點的所有屬性
兒童 選擇當前節點的所有子
後裔 選擇所有後代(children, grandchildren, etc.)當前節點的
後代或自身 選擇所有後代(children, grandchildren, etc.)當前節點和當前節點本身
以下 當前節點的結束標記之後選擇文檔中的一切
以下同胞 選擇所有的兄弟姐妹當前節點之後
命名空間 選擇當前節點的所有命名空間節點
選擇當前節點的父節點
選擇該文件在當前節點之前,除非出現祖先的所有節點,屬性節點和命名空間節點
前同輩 在當前節點之前選擇所有的兄弟姐妹
選擇當前節點

位置路徑表達式

位置路徑可以是絕對或相對的。

絕對位置路徑以斜線開始( / )和相對定位路徑沒有。 在這兩種情況下的位置路徑由一個或多個步驟,每個步驟由一斜線分開:

An absolute location path:

/step/step/...

A relative location path:

step/step/...

每個步驟對在當前的節點集合中的節點進行評價。

甲步驟組成:

  • 一個軸(defines the tree-relationship between the selected nodes and the current node)
  • 一個節點測試(identifies a node within an axis)
  • 零個或多個謂詞(to further refine the selected node-set)

用於位置步驟的語法是:

axisname::nodetest[predicate]

例子

結果
孩子::書 選擇是當前節點的所有子節點的書
屬性::郎 選擇lang當前節點的屬性
兒童::* 選擇當前節點的所有元素孩子
屬性::* 選擇當前節點的所有屬性
孩子:: text() 選擇當前節點的所有文本子節點
子:: node() 選擇當前節點的所有子
後代::書 選擇當前節點的所有後代書
祖先::書 選擇當前節點的所有祖先書
祖先或自身::書 選擇當前節點的所有祖先的書 - 和當前以及如果它是一本書節點
孩子:: * /子::價格 選擇當前節點的所有價格孫子