XPathパス式
XMLドキュメント内のノードまたはノードの集合を選択するために使われます
1. 用語:ノード:7種類:要素、属性、テキスト、名前空間、処理コマンド、コメント、ドキュメント(ルート)ノード
2. ノード関係:親、子、兄弟姉妹、祖先、子孫
3. 経路式
nodename ノード名、このノードのすべての子ノードを選択してください 例: childnode 現在のノードの子ノードには、孫ノード以下のノードのノードは含まれていません。
/ 从根节点选取 例:/root/childnode/grandsonnode
すべての子孫ノードを表します。例:/childnode 子ノード名の子孫ノードすべて
. 現在のノードを表します。例:./childnodeは現在のノードの子ノードを表します。
.. 親ノードを表現例: /nearnodeは親ノードのニアノード子ノードを表します
@ childnode に id 属性を持つすべてのノードセットを表すために /root/childnode/@id 属性を選択してください
4. 述語
述語はノード集合にいくつかの制限を課すことがあり、選択をより正確にすることができます
/root/book[1] 节点集中的第一个节点
/root/book[last()] 节点集中最后一个节点
/root/book[position() - 1] 节点集中倒数第二个节点集
/root/book[position() < 5] 节点集中前五个节点集
/root/book[@id] 节点集中含有属性id的节点集
/root/book[@id='chinese'] 节点集中id属性值为chinese的节点集
/root/book[price > 35]/title 节点集中book的price元素值大于35的title节点集
5. ワイルドカード:XPathパスではワイルドカード(*,@*,node(), text())もサポートされています。
例:/bookstore/*
タイトル[@*]
6. XPath軸
現在のノードに対してノードの集合を定義します
すべての祖先ノードの祖先
すべての属性ノードを属性化します
子 すべての子要素
子孫はすべての子孫ノード(息子、孫など)です。 )
タグ付けを始める前にすべてのノードを追跡し、マーキングを終えた後にすべてのノードに先行します。
フォローシブラはタグの後にすべての兄弟ノードを終了させます
タグ付けを始める前に、すべての兄弟ノードを先行兄弟
名前空間:現在名前空間内のすべてのノード
親親
自己電流ノード
使用法:軸名:ノードテスト[述語]
例えば:ancestor::book
child::text()
7. オペレーター
| 2つのノード集合のマージ例:/root/book[1] | /root/book[3]
+,-,*,dev,mod
=,!=,<,>,<=,>=
または、または |