ツール
JA

XPathテスター

XPath式を入力すると、一致した要素・属性・テキスト、または式が返す数値・文字列・真偽値が入力に合わせて表示されます。テストにはブラウザに組み込まれたXPath 1.0エンジンを使用します。

例(クリックで試せます):

    プライバシー保護:データはお使いのブラウザ内で処理され、アップロードされることはありません。

    XPath式をテストする方法

    1. XMLを貼り付けるか、ファイルを開くか、商品カタログのサンプルを使います。
    2. XPath式を入力するか、例のいずれかをクリックします。結果は入力に合わせて更新され、Enterキーを押すとすぐに評価されます。
    3. 結果を確認します。一致したノードの数とその種類・内容、または式が返す数値・文字列・真偽値が表示されます。

    XPathの書き方早見表(チートシート)

    式選択されるもの
    /catalogルート要素catalog
    //product任意の階層にあるすべてのproduct要素
    /catalog/product/nameルートから順にたどった各商品のname
    //product/@idすべての商品のid属性
    //product[@category='books']category属性がbooksの商品
    //product[price > 20]価格が20を超える商品(数値として比較)
    //product[contains(name, 'USB')]名前に「USB」を含む商品(大文字・小文字を区別)
    //product[not(tags)]子要素tagsを持たない商品
    (//product)[1]文書内の最初の商品
    //product[1]各親要素内の最初の商品
    //product[last()]各親要素内の最後の商品
    //name/text()name内のテキストノード
    //price/..各priceの親要素
    //*[local-name()='product']名前空間を問わないすべてのproduct要素
    count(//product)商品の数
    sum(//price)すべての価格の合計
    string(//product[1]/name)最初の商品名(文字列として)

    XPathでの名前空間の扱い

    XPath 1.0にはデフォルト名前空間がありません。サイトマップやNF-eの請求書のようにxmlns="…"を持つ文書では、要素がその名前空間に属しているため、//urlでは何も見つかりません。そこでこのツールでは、デフォルト名前空間をプレフィックスx:(xがすでに使われている場合はd:)に割り当てているため、//x:url/x:locのように書けます。CFDIの請求書のcfdi:のように文書内で宣言されたプレフィックスは、そのまま使用できます。名前空間を設定できないツールでは、//*[local-name()='url']と書けばどこでも動作します。

    よくある質問

    どのバージョンのXPathに対応していますか?

    すべてのブラウザとほとんどのXMLライブラリに組み込まれているXPath 1.0に対応しています。matches()、lower-case()、string-join()など、XPath 2.0以降の関数は使用できません。

    XPathで何も返ってこないのはなぜですか?

    よくある原因は、デフォルト名前空間(例の下に表示されるx:プレフィックスを使ってください)、大文字・小文字の違い(XPathは大文字と小文字を区別します)、そして位置の指定(0ではなく1から始まります)です。

    結果は何件まで表示されますか?

    一致したものはすべてカウントされ、最初の500件がノードの種類と内容とともに一覧表示されます。

    XMLはアップロードされますか?

    いいえ。XMLの解析とクエリの実行はブラウザ内で行われます。当サイトのサーバーを経由するのは、URLから読み込む場合のみです。