機能
ノードの位置を指定し、ノードあるいは原子値のシーケンスを返します。
記述形式
参照項番
基本式 → 4.2 基本式
軸ステップ → 4.3.1 軸ステップ
述語 → 4.3.2 述語
一般規則
パス式は1つ以上のステップの並びから成り、各ステップは“/”または“//”で区切られます。
パス式: /employees/employee[@id>030000][@sex="male"]/name (1) (2) (3)
(1)~(3) ステップ
パス式は、ステップ、または“/”、または“//”のいずれかで開始されます。
パス式がステップで開始される場合、先頭にあるステップは、そのパスの開始点を指定します。
パス式の全体が“/”である場合、このパス式は“/.”と同じ結果を返します。
パス式が“/”から開始される場合、先頭にある“/”は、そのパスがコンテキストアイテムの値を含むXML木のルートノードから開始されることを意味します。
パス式の途中に存在する“/”は、ステップとステップを分離します。
パス式が“//”から開始される場合、先頭にある“//”は、そのパスがコンテキストアイテムの値を含むXML木のルートノードと、そのすべての子孫で構成されるノードのシーケンスから開始されることを意味します。
パス式の途中に存在する“//”は、そのパスが“//”の左側のステップで表されるノードの子孫と、“//”の右側のステップで表されるノードが一致するようなパスをすべて含んでいることを意味します。
コンテキストアイテムの値がノードでない場合、パス式の先頭が“/”または“//”であれば、型エラーが発生します。
パス式が“/”または“//”から開始される場合、その評価時にコンテキストアイテムの値を含むXML木のルートノードがドキュメントノードでなければ、エラーが発生します。
パス式の評価規則を以下に示します。
パス式の評価は、各ステップを左から順に評価して行います。
パス式がステップで開始されているとき、先頭にあるステップは1度だけ評価されます。
パス式の各ステップ(先頭にあるステップは除く)は、前のステップにより生成されたシーケンスの項目をコンテキストアイテムの値とし、各項目に対して1回ずつ繰り返し評価されます。これらの反復評価結果が結合されて、後続のステップのためのシーケンスを形成します。このとき、シーケンス内のノードの重複は除去されます。
パス式の途中のステップ(最終ステップ以外のステップ)の結果が原子値を含んでいる場合、型エラーが発生します。
パス式の評価結果は、パス式の最終ステップの結果です。
パス式の評価結果は原子値のシーケンス、あるいはノードのシーケンスのどちらかです。パス式の評価結果が原子値とノードを少なくとも1つずつ含むようなシーケンスになる場合、型エラーが発生します。
パス式に指定可能なステップ数は最大100個です。
使用例
全従業員の名前を検索します。
/employees/employee/name ↓出力結果 <name>Tanaka Tarou</name> <name>Kondou Yusuke</name> <name>Shinada Megumi</name> <name>Kawada Hiroko</name>
全従業員の年齢を検索します。
/employees//age ↓出力結果 <age>42</age> <age>20</age> <age>34</age> <age>51</age>