戻る

XPath クエリテスター

フォーマット

読み込み中

ツールを読み込んでいます

ツールのコードは開いたときにのみ読み込まれます。

このツールの処理はすべてブラウザー内で行われ、入力内容はサーバーへ送信されません。

このツールについて

XML ノードや属性の選択、count()、sum()、string()、boolean() の評価をブラウザー内で行います。一般的な XPath 1.0 構文と関数のサブセットを、FontoXPath の XPath 3.1 意味規則で評価します。XPath 1.0 または 3.1 への完全準拠は主張しません。型付きスカラー、正規化したノード、診断位置を表示し、XML や結果を HTML として描画しません。

主な用途

  • 設定やインポートで使う前に XML の属性条件を確かめる。
  • XML の既定名前空間に XPath 接頭辞が必要な理由を確認する。
  • 上限内のノード集合を確認し、完全な結果を JSON に保存する。

使い方

  1. 1.XML 1.0 を貼り付けるか、厳密な UTF-8 ファイルを選択します。サンプルも利用できます。
  2. 2.XPath 式を入力します。名前空間のある要素には {"b":"urn:books"} のような JSON 接頭辞マップを設定し、実行します。
  3. 3.結果の型とノードを確認してページを切り替えます。共有に適した内容か確認し、完全な JSON を保存します。

実行可能なクエリ例

属性条件

XML: <books><book id="a" price="10">Alpha</book><book id="b" price="20">Beta</book></books>
XPath: //book[@price > 10]/@id
Namespaces: {}
attribute id = b

価格の条件で 2 番目の book を選び、id 属性を取得します。

既定名前空間

XML: <books xmlns="urn:books"><book id="a">日本語 · 中文 · 𠮷</book></books>
XPath: //b:book/@id
Namespaces: {"b":"urn:books"}
attribute id = a

b 接頭辞で既定の XML 名前空間を指定します。接頭辞なしの //book は一致しません。

数値スカラー

XML: <books><book price="10"/><book price="20"/></books>
XPath: sum(//book/@price)
Namespaces: {}
number = 30

数値として表示し、JSON には文字列 "30" で保存します。

Unicode スカラー

XML: <r>𠮷A</r>
XPath: substring(/r, 1, 1)
Namespaces: {}
string = 𠮷

補助平面の文字を 1 文字として保持し、孤立したサロゲートに分割しません。

制限と注意事項

  • XML は UTF-8 128 KiB、UTF-16 131,072 単位、深さ 64、属性を含む DOM 項目 5,000、名前空間宣言 32 が上限です。XML 1.0 のみ対応し、先頭の任意の文字コード宣言は UTF-8 のみにしてください。DTD と実体宣言の印はコメントや CDATA 内でも拒否します。 名前は解析器の BMP 文字範囲で処理します。XML で正しい名前でも、要素・属性・名前空間接頭辞の補助平面文字は非対応です。補助平面のテキストと属性値は使用できます。
  • 式は UTF-16 512 単位までです。パス、条件、namespace 以外の軸、和集合、id() 以外の XPath 1.0 基本関数を XPath 3.1 の意味規則で評価します。変数、独自・外部取得関数、後続バージョンの構文は非対応です。複数ノードの string(//book) は失敗するため string((//book)[1]) を使います。比較、数値変換、丸めは XPath 1.0 と異なる場合があり、JavaScript の数値精度に制限されます。
  • 名前空間マップは 32 項目、UTF-16 8,192 単位まで。ASCII 接頭辞は 64 文字、URI は 512 単位までです。xml と xmlns は予約語で、xml は定義済みです。重複 JSON キーは最後の値を使います。接頭辞なしの名前は名前空間のないノードだけに一致します。URI への通信は行いません。
  • ワーカーは 8 秒で終了します。一致ノードが 1,000 を超えるか、完全な JSON が UTF-8 2,000,000 バイトを超えると結果全体を拒否します。シリアライズの保守的予算により早く拒否する場合もあります。プレビューは UTF-16 1,024 単位、1 ページ 100 ノードまでです。入力・言語の変更やキャンセルは結果とダウンロードを無効にします。
  • 出力には式、実際の名前空間マップ、採用した全値と正規化した内容が含まれ、機密情報を含む可能性があります。元の XML バイトは保持せず、隣接テキストと CDATA を統合し、XML 宣言を除きます。パスは DOM のすべての兄弟の位置で、診断専用です。数値は NaN、Infinity、負のゼロを保持する文字列として出力します。

よくある質問

//book が一致しないのはなぜですか?

接頭辞なしの XPath 要素名は名前空間のない要素だけに一致します。<books xmlns="urn:books"> には b を urn:books に設定し、//b:book を使います。接頭辞は元の XML と同じでなくても構いません。

どの XPath バージョンですか?

XPath 1.0 の構文検査と基本関数の許可リストを FontoXPath 3.1 評価器に接続しています。完全な XPath 1.0 互換でも XPath 3.1 の全機能でもありません。単一ノード変換や比較は利用先のエンジンで確認してください。

名前空間 URI、DTD、式は外部通信をしますか?

URI は識別子としてだけ使います。ローカルワーカーには外部取得機能がなく、DTD、実体宣言、外部取得関数、拡張関数は拒否します。入力の保存やバックエンドでのクエリ実行はありません。

省略されたプレビューは JSON でも省略されますか?

いいえ。プレビューの省略を表示し、成功した JSON は採用した全ノードと値を含みます。ノード数や出力サイズの上限を超えると部分結果を返しません。

関連ツール