Cookie の使用について.本サイトでは、基本機能の提供に必要な必須 Cookie を使用しています。さらに、同意いただいた場合に限り、アクセス解析 Cookie を利用して利用状況を把握し、サービス改善に役立てます。詳しくは .
このツールが役に立ったら、開発者にコーヒーを奢ってください ☕
ブラウザでXPath式を直接テストでき、マッチング結果をすぐに確認できます。ウェブスクレイピング、データ抽出、フロントエンドデバッグに最適です。
各行に1つのプレフィックスマッピングを記述してください。形式は prefix=URI です。デフォルトの名前空間は、XPath内でカスタムプレフィックスに置き換える必要があります。
内容とXPath式を入力して、一致する結果を表示してください。
ウェブスクレイピングコードで商品価格のリンクを抽出したい、または自動化テストスクリプト内の要素位置をデバッグしたい、あるいは特定のHTMLセクション内に特定のタグがいくつあるか知りたい場合——XPathで一行で位置指定できます。しかし、XPathを正しく書いたかどうか?表現式は簡単にタイプミスします。当社のXPathオンラインテストツールでは、HTML/XMLドキュメントを貼り付け、XPathを書き、マッチング数とハイライト内容をすぐに表示でき、何度もページを更新したり開発者ツールを開く手間が省けます。
XPathはXMLドキュメント内でノードを見つけるためのパス言語で、ファイルシステムのディレクトリパスに似ています。例えば//div[@class='price']は「class属性がpriceと等しいすべてのdiv要素」を意味します。これはドキュメント内の要素に「アドレス」を与えると考え、このアドレスを使って直接それらを取得できるようにするものです。開発者は頻繁にこれを使ってウェブページからデータを抽出したり、自動化フローを制御したりします。
//a/@hrefはすべてのハイパーリンクのアドレスを抽出することを意味します。単純な商品HTMLがあると仮定しましょう(ドキュメントボックスに貼り付け):
<div id="products">
<div class="item">
<span class="name">ワイヤレスマウス</span>
<span class="price">¥39.9</span>
</div>
<div class="item">
<span class="name">メカニカルキーボード</span>
<span class="price">¥129</span>
</div>
</div>すべての商品名を抽出したいとします。XPathボックスに//span[@class='name']/text()を入力します。テストをクリックすると、結果エリアに「2つのノードにマッチしました」と表示され、以下のようにリストされます:
1. ワイヤレスマウス
2. メカニカルキーボード
名前と価格を一度に取得したい場合は、ユニオン選択を使用するか、要素の親ノードを返すことができますが、初心者はまず単純な式を使用してください。
別の対照例を見てみましょう。//span[@class='price']と書いた場合(/text()を加えない)、マッチング結果は「2つのノード」と表示されますが、各ノードは<span class="price">¥39.9</span>のような完全なタグになります——XPathはデフォルトでノードを返すため、テキストではありません。目的が数字を取得することなら、/text()またはstring()を加えることを忘れないでください。
//tagは通常マッチしないため、名前空間プレフィックスを最初に登録する必要があります。当ツールは現在、名前空間がないか明示的なプレフィックスでのマッチのみサポートしており、名前空間が発生した場合はlocal-name()関数を手動で削除するか使用してください。<Div>と<div>のように大文字小文字が混在することが多く、2つの異なるノードであるため、式を書くときは注意が必要です。//の不正な使用がパフォーマンスの問題を引き起こす:ツールは小さなドキュメントを迅速に処理しますが、実際の大きなドキュメントで//を乱用するとすべてのノードをスキャンするため、/html/body/div[1]/のような具体的なパスを使用して効率を向上させることをお勧めします。//div [@class=...](角括弧の前に空白がある)は構文エラーで、ツールは「無効な式」と表示します。式を書くときはスペースをランダムに追加しないでください。text()がすべてのテキストを取得できると思う:text()は直接テキスト子ノードのみを返し、ネストされた要素内のテキストは自動的にマージされません。すべてのテキストを取得するにはstring()またはnormalize-space()を使用してください。local-name()を手動で使用するか、名前空間宣言を先に削除する必要があります。@class='value'を使用しているが実際の属性値の前後に空白がある場合です。まず//*を使ってすべての要素を確認し、段階的に絞り込みます。contains()関数をサポートしていますか?//div[contains(@class, 'price')]はclass属性に「price」を含むdivにマッチします。//aを使ってすべてのa要素を返すと、結果フレームにノードのテキスト(inner text)が表示されます。href属性を取得するには//a/@hrefを使用しますが、属性ノードが返されてテキストは空であることに注意してください。2つの式を同時に書いて2回テストするか、マルチ式機能を使用できます(ツールが提供している場合)。[object Text]などが表示されていて、目的のテキストではありません/text()または/string()を追加して文字列を取得します。上の入力ボックスで、自分のHTMLとXPath式を試してみてください。

JSONからTypeScript型への変換
JSONデータをTypeScriptのインターフェースや型エイリアスに自動変換します。フロントエンドのデータモデル定義やAPI連携に最適です。

pyc逆コンパイル
Pythonバイトコードの.pycファイルを読み取り可能なソースコードに復元し、コード監査や学習に役立てます。主要なバージョンに対応しています。

URL JSON変換・解析ツール
URL文字列を構造化されたJSONに解析し、プロトコル、パラメータ、パスなどの重要な情報をすばやく抽出します。

コード比較
2つのテキストやコードの差分を専門的に比較し、追加・削除・変更内容をハイライト表示します。コードレビュー、ドキュメント統合、バージョン管理をサポートします。

JSONからTypeScript型への変換
JSONデータをTypeScriptのインターフェースや型エイリアスに自動変換します。フロントエンドのデータモデル定義やAPI連携に最適です。

pyc逆コンパイル
Pythonバイトコードの.pycファイルを読み取り可能なソースコードに復元し、コード監査や学習に役立てます。主要なバージョンに対応しています。

URL JSON変換・解析ツール
URL文字列を構造化されたJSONに解析し、プロトコル、パラメータ、パスなどの重要な情報をすばやく抽出します。

コード比較
2つのテキストやコードの差分を専門的に比較し、追加・削除・変更内容をハイライト表示します。コードレビュー、ドキュメント統合、バージョン管理をサポートします。

JSON整形
オンラインでJSONデータを処理し、整形、圧縮、基本的な構文チェックを実行。開発とデバッグの効率を向上させます。