XPathテスター
オンラインでXPath式をテスト・評価し、即時結果を取得
マッチ結果
結果の詳細
クイックテンプレート
XPathテストツールのドキュメント
XPathの基本
XPath(XML Path Language)は、XMLおよびHTMLドキュメントからノードを選択するためのクエリ言語です。ファイルシステムのパスと同様に、パス式を使用してドキュメントツリー構造内の要素と属性を移動します。
絶対パス
/html/body/div
ルートノードから開始します。ドキュメントの正確な構造を知っている場合に使用します。
相対パス
//div[@class='content']
ドキュメント内のどこからでもノードを選択します。より柔軟で一般的に使用されます。
XPath構文リファレンス
選択式
| 式 | 説明 |
|---|---|
/ |
ルートノードから選択(絶対パス) |
// |
現在のコンテキスト以下の任意の場所からノードを選択(相対パス) |
. |
現在のノードを選択 |
.. |
現在のノードの親を選択 |
@ |
属性を選択 |
* |
任意の要素ノードにマッチ |
述語(フィルター)
| 式 | 説明 |
|---|---|
[1] |
最初の要素を選択 |
[last()] |
最後の要素を選択 |
[@attr] |
指定された属性を持つ要素を選択 |
[@attr='val'] |
属性が値と等しい要素を選択 |
[position()<3] |
位置が3未満の要素を選択 |
よく使う関数
text()
ノードのテキストコンテンツを選択
contains()
文字列が部分文字列を含むかチェック
starts-with()
文字列が接頭辞で始まるかチェック
normalize-space()
先頭/末尾の空白を削除
count()
ノードの数をカウント
not()
条件がfalseの場合にtrueを返す
実用的なXPath例
外部リンクを選択
//a[@href and contains(@class, 'external')]
href属性を持ち、クラスに'external'を含むすべてのアンカー要素を検索します。
テーブルデータを選択(ヘッダーをスキップ)
//table//tr[position() > 1]/td[1]
ヘッダー行を除く各テーブル行の最初のセルを選択します。
表示されるテキストコンテンツを抽出
//*[not(self::script) and not(self::style)]//text()
scriptおよびstyle要素内を除くすべてのテキストノードを取得します。
XPath軸
軸は、ドキュメントツリー内の現在のノードと他のノード間の関係を定義します。
ancestor::
すべての祖先(親、祖父母など)を選択
descendant::
すべての子孫(子、孫など)を選択
following-sibling::
現在のノードの後のすべての兄弟を選択
preceding-sibling::
現在のノードの前のすべての兄弟を選択
child::
現在のノードのすべての子を選択
parent::
現在のノードの親を選択