XPathテスター

XPath 1.0の式をXMLやHTMLに対してテストし、一致するノード、属性、テキスト、数値や文字列の結果を、ブラウザのエンジンで即座に確認できます。

ドキュメントの解析形式
ブラウザー内蔵の XPath 1.0 エンジン(document.evaluate)で評価します。デフォルト名前空間を持つ XML では、ルート要素が宣言したプレフィックス経由でのみ検索できます。何もアップロードされません。

XPathテスターとは?

XPathテスターは、貼り付けたXMLまたはHTMLドキュメントに対してXPath式を評価し、結果を表示します。一致した要素はマークアップとテキストとともに、属性は値として、count() や sum() などの式では数値、文字列、真偽値で表示されます。結果は入力するたびに更新されます。

XPathテスターの使い方

  1. //book[price > 35]/title のようなXPath式を入力します。
  2. ドキュメントをXMLとHTMLのどちらで解析するかを選びます。
  3. ドキュメントを貼り付けるか編集します。
  4. 一致数と各一致ノード、またはスカラーの結果を確認します。

例

入力
//book[price > 35]/title on the sample bookstore XML
出力
2 matches: Learning XML, XQuery Kick Start

sum(//book/price) は 119.94 を返します。

XPathテスターを使うべき場面

Webスクレイピング、Selenium/Playwrightのロケーター、XSLT、XML設定の処理に使うXPathの開発に使います。ブラウザが実装しているのはXPath 1.0だけなので、XPath 2.0/3.1の関数(matches()、string-join()など)は使えません。貼り付けたHTML内のスクリプトは実行されません。

XPathテスターの仕組み

ドキュメントはブラウザのDOMParser(application/xmlまたはtext/html)で解析され、XMLの構文エラーは報告されます。式は、ブラウザ標準のXPath 1.0エンジンである document.evaluate() でANY_TYPEの結果として評価されるため、ノードセット、数値、文字列、真偽値のすべてに対応します。名前空間のプレフィックスは、ルート要素の宣言から解決されます。表示されるのは最大200件の一致です。

一般的な使用例

  • UIテスト用に、//button[normalize-space()="Save"] のようなロケーターを作る。
  • //book/@category ですべての属性値を抽出する。
  • XMLフィードの値を数えたり合計したりする。
  • スクレイパーのXPathが何も返さない理由をデバッグする。

よくある質問

デフォルト名前空間があるとXPathが何も返さないのはなぜですか。

XPath 1.0では、プレフィックスのない名前は、名前空間付きの要素に一致しません。ルート要素でプレフィックスを宣言して使うか、*[local-name()='book'] を使ってください。

HTMLとXMLのどちらで解析すべきですか。

Webページにはhtml(寛容な解析、小文字のタグ名)を、フィード、SOAP、サイトマップ、設定ファイルにはXMLを使います。

XPath 2.0には対応していますか。

いいえ。主要なブラウザはすべてXPath 1.0しか実装していません。

おすすめの次のステップ

他のカテゴリを見る