最新の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 選択lang現在のノードの属性を
子::* 現在のノードのすべての子要素を選択します
属性::* 現在のノードのすべての属性を選択します
子供:: text() 現在のノードのすべてのテキストノードの子を選択します
子:: node() 現在のノードのすべての子を選択します
子孫::書籍 現在のノードのすべての書籍の子孫を選択
祖先::書籍 現在のノードのすべての本の祖先を選択
祖先-または自己::書籍 それは本のノードである場合と同様に、現在 - 現在のノードのすべての本の祖先を選択
子供:: * /子::価格 現在のノードのすべての価格孫を選択