XPath式をオンラインでテスト
XPath Testerを使用すると、XPath式で公開Webページ上のノードを検索できます。URLと、//img、//main//a、//*[@data-id]などの式を入力してください。このツールは一致するノードを表示し、同じクエリを実行するC#コードを生成します。
- 確認するWebページのURLを入力します。
- 必要なノードを特定するXPath式を入力します。
- Findをクリックし、一致するノードを確認して、結果または生成されたC#コードをコピーします。
C#でHTMLに対するXPathクエリを評価
Aspose.HTML for .NET
は、文書DOMに対してXPath式を評価します。この例は、ウィジェットに表示されているURLを読み込み、
Evaluate()
を呼び出して、返されたIXPathResultを処理します。ウィジェットのURLまたは式を変更すると、このサーバー側でレンダリングされるC#の例も自動的に更新されます。コンテキストノードは評価の開始位置を定義し、XPathResultTypeは要求する結果型を指定します。
C#のXPathクエリ
using System;
using Aspose.Html;
using Aspose.Html.Dom;
using Aspose.Html.Dom.XPath;
// Create an HTML document
string url = "https://www.aspose.com/";
using HTMLDocument document = new HTMLDocument(url);
// Evaluate the XPath expression
IXPathResult result = document.Evaluate("//a", document, null, XPathResultType.Any, null);
// Process the XPath result
switch (result.ResultType)
{
case XPathResultType.Number:
Console.WriteLine(result.NumberValue);
break;
case XPathResultType.String:
Console.WriteLine(result.StringValue);
break;
case XPathResultType.Boolean:
Console.WriteLine(result.BooleanValue);
break;
default:
Node node;
while ((node = result.IterateNext()) != null)
{
if (node is Element element)
{
Console.WriteLine(element.OuterHTML);
}
else
{
Console.WriteLine(node.TextContent);
}
}
break;
}
よく使われるXPathクエリのパターン
XPathでは、名前、属性、位置、階層、テキスト内容に基づいて要素を選択できます。
//imgは文書内のすべての<img>要素を選択します。//main//aは<main>内の任意の深さにあるリンクを選択します。//*[@data-id]はdata-id属性を持つ要素を選択します。//ul/li[1]は各<ul>の最初の<li>子要素を選択します。//p[contains(normalize-space(.), 'price')]は正規化したテキストにpriceを含む段落を選択します。
テキスト条件やXPath軸を必要としない、クラス、ID、属性、要素の簡潔なクエリには、 CSS Selector Tester の方が読みやすい場合があります。
C#でXPath APIを使用する手順
- ローカルHTMLファイルまたはURLから
HTMLDocumentを作成します。 - XPath式を定義し、適切なコンテキストノードを選択します。
- 式、コンテキスト、必要な場合は名前空間リゾルバー、期待する
XPathResultTypeを指定してEvaluate()を呼び出します。 - 返された値を読み取るか、
IterateNext()で一致するノードを反復処理します。
式で名前空間プレフィックスを使用する場合は、そのプレフィックスを名前空間URIに対応付けるリゾルバーを指定してください。プレフィックスを含まない通常のHTMLクエリでは、リゾルバーにnullを指定できます。
XPathのドキュメントとAPIリファレンス
XPath評価、HTMLナビゲーション、XML固有の例については、次のリソースを参照してください。
- How to Use XPath in HTML
では、
Evaluate()のパラメーターとC#でノードを選択する方法を説明しています。 - HTML Navigation in C# では、XPath、CSSセレクタ、DOMの直接走査を比較しています。
- Select XML Nodes with XPath では、XML文書に対するXPathクエリを解説しています。
Aspose.HTML for .NET のインストール
.NET CLI を使用して、NuGet から Aspose.HTML for .NET をインストールします。
dotnet add package Aspose.HTML
NuGet パッケージ マネージャーの UI を使用するか、パッケージ マネージャー コンソールで Install-Package Aspose.HTML を実行することもできます。セットアップの詳細は
インストール ガイド
を参照してください。評価制限なしで API を試すには、
一時ライセンス
を申請できます。
FAQ
1. XPath式とは何ですか?
XPath式は、HTMLまたはXML文書ツリーからノードを選択したり値を計算したりするクエリです。パス、軸、述語、関数を使用して必要な結果を指定できます。
2. XPathはHTMLとXMLの両方を検索できますか?
はい。XPathはDOMツリーを対象とし、HTML文書とXML文書のノードを選択できます。オンラインテスターは公開HTMLページ用です。名前空間処理やXML固有の読み込みが必要な場合は、ドキュメントに記載されたC#のXMLワークフローを使用してください。
3. XPath式がノードを返さないのはなぜですか?
ノード名、述語、コンテキストノード、読み込んだ文書構造を確認してください。XMLまたは名前空間付きコンテンツの場合は、式で使用する各プレフィックスを対応するURIに割り当てる名前空間リゾルバーも指定します。
4. CSSセレクタではなくXPathを使用するのはどのような場合ですか?
テキストの照合、祖先や兄弟ノードへの移動、CSSでは表現しにくい述語が必要な場合はXPathを使用します。一般的なクラス、ID、属性、子孫のクエリにはCSSセレクタを使用します。
関連するHTML選択および編集ワークフロー
CSSセレクタ、DOM編集、テーブルデータ抽出、画像抽出の手順も確認できます。