XPathテスター
XML / HTML 入力
結果
技術的な詳細
XPath Tester の仕組み
このツールでできること
XPath Tester は、XML または HTML ドキュメントに対して XPath 式を評価し、ソース内で一致したノードをハイライト表示します。XML/HTML ドキュメントを貼り付け、XPath 式を入力すると、一致するすべてのノードと抽出された内容を即座に確認できます。これにより、Web スクレイピング、XSLT 変換、XML データ抽出で使うクエリを開発する際に、即時の視覚的フィードバックが得られます。
開発者によくある利用シーン
開発者は、Web スクレイピング用セレクタ(Scrapy, lxml)の作成、XSLT 変換の記述、SOAP/XML API レスポンスのクエリ、Maven POM や Android マニフェストのような設定ファイルからのデータ抽出の際に XPath テスターを利用します。QA エンジニアは、CSS セレクタでは不十分な場合(例:テキスト内容で選択する、上方向にたどる)に XPath を使って Selenium ロケータを作成します。DevOps エンジニアは XML ベースのビルド/デプロイ設定をクエリします。
データ形式、型、またはバリエーション
XPath は、ロケーションパス(//book/title)、述語(//item[@price > 10])、軸(ancestor::, following-sibling::)、関数(contains(), starts-with(), normalize-space(), count())、および和集合式(|)をサポートします。XPath 1.0 はノードセット、文字列、数値、ブール値を返します。XPath 2.0+ ではシーケンス、正規表現、日付/時刻関数が追加されますが、ブラウザ実装は通常 1.0 をサポートします。名前空間プレフィックス付き要素は、正しく一致させるために名前空間登録が必要です。
よくある落とし穴とエッジケース
XPathで最もよくある間違いは、デフォルト名前空間を忘れることです。名前空間内の要素は、ソース文書にプレフィックスが見当たらなくても、プレフィックスなしのパスでは一致しません。XMLとして解析されたHTMLは大文字・小文字を区別します(DIV ≠ div)が、HTML5パーサーは小文字に正規化します。'//' の省略記法はすべての子孫要素を検索するため、大きな文書では非常に遅くなることがあります。構造が分かっている場合は絶対パスを優先してください。ブラウザのXPathエンジンは、正規表現用の matches() のようなXPath 2.0関数をサポートしていません。
コードではなくこのツールを使うべき場面
スクレイピングや変換コードに埋め込む前に、サンプル文書に対してXPath式を素早くプロトタイピングするために、このブラウザツールを使用してください。本番のXML処理では、XPath 2.0/3.0をサポートし、名前空間を適切に扱い、複雑な文書変換のためのXSLTおよびXQueryパイプラインと統合できる専用ライブラリ(Pythonならlxml、JavaならSaxon)を使用してください。