XPathテスター
XPath Tester
XMLやHTMLにXPathかCSSセレクタを当てて、一致したノードをすべて並べます。
XPath 1.0の式かCSSのセレクタを、XMLやHTMLの文書に対して実行し、一致したノードをすべて、それぞれの絶対パスとともに表示します。評価はブラウザ自身が行うので、ここで見える結果が、コードの中で`document.evaluate`が出す結果です。
XPath 1.0 の式
文書
ファイルを置く
このタブの中だけで読みます。
結果
入力するそばから、ここに結果が出ます。
どう動いているか
- · 評価はブラウザー自身の
document.evaluate(XPath 1.0)とquerySelectorAllです。結果の型づけ — ノード集合・数値・文字列・真偽値 — と、各ノードの絶対パス、名前空間接頭辞の扱いはこのツールがやっています。 - · XML モードは厳密に読んでどこがおかしいかを伝え、HTML モードはブラウザーと同じようにおおらかに読みます。HTML はタグ名を小文字に正規化するので、
//DIVではなく//divが正しくなります。 - · 既定の名前空間(
xmlns="…")が宣言された文書では、接頭辞のない名前は何にも一致しません。XPath 1.0 の規則です。そういうときは_接頭辞を使って//_:itemのように書きます。 - · XPath 2.0 や 3.x の関数(
matches,ends-with,lower-case)はどのブラウザーにもありません。contains·starts-with·translate·normalize-spaceが 1.0 で使えるものです。 - · 文書はこのタブの中だけで読み、どこにもアップロードしません。
JSON なら JSONPath テスター か jq プレイグラウンドが適した道具です。
使い方
文書の読み方を選びます
XMLのモードは厳密に読み、どこが壊れているのかを知らせます。HTMLのモードはブラウザと同じように寛容に読み、タグの名前を小文字に揃えます。
式を書きます
XPathかCSSのセレクタかを、切り替えで選びます。例のボタンが、属性、述語、名前空間、コメントのノード、そして値を1つ返す関数までを押さえています。
結果の種類をまず見ます
XPathが返すものは4種類あり、ノードの集合はそのうち1つだけです。`count()`、`string()`、`boolean()`は値を1つ返すので、空の一致の一覧ではなく、その値そのものとして表示します。
よくある質問
文書は問題ないのに、式が何も見つけません
ほぼ確実に既定の名前空間のせいです。ルートに`xmlns="…"`が付いていると、XPath 1.0では接頭辞の無い名前は何にも一致しません。接頭辞を結びつける必要があります。ここではその接頭辞が`_`なので、`//item`は`//_:item`と書きます。
`matches()`が無いのはなぜですか
ブラウザがXPath 1.0しか実装していないからです。`matches`、`ends-with`、`lower-case`などは2.0で入ったもので、どのブラウザにもありません。1.0で使える道具は`contains`、`starts-with`、`translate`、`normalize-space`です。
XPathとCSSのどちらを使うべきですか
CSSのほうが短く、たいていのスクレイピングにはそれで足ります。XPathは上へ遡れますし(`..`、`ancestor::`)、テキストの内容で一致させられますし、数値や文字列を返せます。セレクタにはできないことばかりです。このページは両方を動かすので、同じ文書の上で見比べられます。
ページを代わりに取ってきてくれますか
取ってきません。文書を貼り付けるかドロップすれば、このタブの中で読みます。取りに行くにはプロキシが必要になりますが——ブラウザはページに別のオリジンを読ませません——そのプロキシは、あなたが試したものをすべて見ることになります。
ここから渡せます
XMLフォーマッター・検証
XML Formatter & Validator
XMLのインデントを整え、整形式として最初に崩れている箇所の行と列を示します。
JSON⇄XML変換
JSON ⇄ XML
属性・配列・テキストノードの扱い方を指定して、JSONとXMLを相互に変換します。
JSONPathテスター
JSONPath Tester
JSONPathの式を文書に対して実行し、打っているあいだ一致するノードを光らせます。
JSONフォーマッター・検証
JSON Formatter & Validator
JSONを整形・圧縮して検証し、構文エラーがあれば行と列を正確に指し示します。
次の一手
このツールが出したものをそのまま受け取れる道具です。
HTML整形・圧縮
HTML Beautifier & Minifier
HTMLを整形または圧縮し、インライン要素は保ったまま空白をどこまで詰めるかを選べます。
JSONPathテスター
JSONPath Tester
JSONPathの式を文書に対して実行し、打っているあいだ一致するノードを光らせます。
JSON⇄XML変換
JSON ⇄ XML
属性・配列・テキストノードの扱い方を指定して、JSONとXMLを相互に変換します。
XMLフォーマッター・検証
XML Formatter & Validator
XMLのインデントを整え、整形式として最初に崩れている箇所の行と列を示します。
Base64エンコード・デコード
Base64 Encoder & Decoder
テキストでもファイルでもBase64とBase64URLを符号化・復号し、UTF-8も正しく扱います。
curlをコードに変換
curl to Code
curlのコマンドをfetch・axios・Pythonのrequests・Go・PHP・PowerShellのコードに変換します。