XPath を使用して、XPath 式で定義された基準に一致する特定のノードを見つけることができます。 XPath クエリを使用して、XML または HTML ドキュメントをナビゲートできます。したがって、この記事では、要件に従って特定のノードを選択するために XPath を使用する方法について説明します。
- XPath を使用して XML または HTML ファイルからノードを選択する - C# API のインストール
- C# で XPath Document.Evaluate() メソッドを使用して HTML Web ページから画像を取得する
- C# で XPath Document.Evaluate() メソッドを使用して XML ファイルからノードを選択する
- XPath Document.Evaluate() メソッドを使用して、C# で選択したノードから特定の情報を取得する
XPath を使用して XML または HTML ファイルからノードを選択する - C# API のインストール
Aspose.HTML for .NET API を使用して、特定のタイプのノードを選択したり、選択したノードから特定の情報を読み取ったりするプロセスを自動化できます。 New Releases ページから DLL ファイルをダウンロードするか、次の NuGet インストール コマンドを使用して、API をすばやく構成できます。
PM> Install-Package Aspose.Html
C# で XPath Document.Evaluate() メソッドを使用して HTML Web ページから画像を取得する
Document.Evaluate() メソッドを使用して、HTML Web ページから画像を取得できます。このプロセスを完了するには、次の手順に従ってください。
- HTMLDocument クラスのオブジェクトを初期化して、ソース ファイルを読み込みます。
- XPath 式とその他のパラメーターを Evaluate メソッドに渡します。
- 選択したノードを繰り返し処理し、各画像のリンクを取得します。
次のコード サンプルは、XPath Document.Evaluate() メソッドを使用して HTML Web ページから画像を取得する方法を示しています。
// HTML ドキュメントのインスタンスを作成する
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "xpath.htm")))
{
// XPath 式を評価する
var result = doc.Evaluate("//main/div[position() mod 2 = 1]//img[@class = 'photo']", doc, doc.CreateNSResolver(doc), Aspose.Html.Dom.XPath.XPathResultType.Any, null);
// 結果のノードを繰り返し処理し、それらをコンソールに出力します
Aspose.Html.Dom.Node node;
while ((node = result.IterateNext()) != null)
{
var img = (Aspose.Html.HTMLImageElement)node;
Console.WriteLine(img.Src);
}
}
C# で XPath Document.Evaluate() メソッドを使用して XML ファイルからノードを選択する
場合によっては、XML ファイルから特定のノードを選択する必要があります。次の手順では、このような要件を満たす方法について説明します。
- HTMLDocument クラスでソース XML ファイルを読み込みます。
- XPath 式とその他のパラメーターを渡しながら、Evaluate メソッドを呼び出します。
- 選択したノードを繰り返し処理し、選択したノードのコンテンツ全体を出力します。
以下のコード スニペットは、XPath Document.Evaluate メソッドを使用して XML ファイルからノードを選択する方法を示しています。
// ドキュメントのインスタンスを作成する
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
// XPath 式を評価する
var dealers = doc.Evaluate("//Dealer[descendant::Car[descendant::Model > 2005 and descendant::Price < 25000]]", doc, doc.CreateNSResolver(doc), XPathResultType.Any, null);
Aspose.Html.Dom.Node dealer;
// 結果のノードを繰り返し処理し、その内容をコンソールに出力します
while ((dealer = dealers.IterateNext()) != null)
{
Console.WriteLine(dealer.TextContent);
}
}
XPath Document.Evaluate() メソッドを使用して、C# で選択したノードから特定の情報を取得する
コンテンツ全体ではなく、ノードから特定の詳細を取得する必要がある場合があります。以下の手順に従って、選択したノードから特定の情報を取得するために XPath クエリを使用できます。
- HTMLDocument クラスを使用して、入力 XML ファイルにアクセスします。
- Evaluate メソッドを呼び出して、XPath 式に一致するノードを取得します。
- 一致するノードをループして、各ノードから特定のコンテンツを出力します。
次のコード サンプルは、XPath の Document.Evaluate メソッドを使用して、XML で選択したノードから特定の情報を取得する方法を説明しています。
// ドキュメントのインスタンスを作成する
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
// XPath 式に一致するディーラーを選択
var dealers = doc.Evaluate("//Dealer[descendant::Car[descendant::Model > 2005 and descendant::Price < 25000]]", doc, doc.CreateNSResolver(doc), XPathResultType.Any, null);
Aspose.Html.Dom.Node dealer;
// 選択したディーラーを反復する
while ((dealer = dealers.IterateNext()) != null)
{
// ディーラー名と電話番号を取得して印刷する
var dealerInfo = doc.Evaluate("concat('Dealer name: ', Name, ' Telephone: ', Telephone)", dealer, doc.CreateNSResolver(doc), XPathResultType.String, null);
Console.WriteLine(dealerInfo.StringValue);
// XPath 式に一致する CarID を選択して出力する
var carIds = doc.Evaluate(".//Car[descendant::Model > 2005 and descendant::Price < 25000]/@CarID", dealer, doc.CreateNSResolver(doc), XPathResultType.Any, null);
Aspose.Html.Dom.Node carId;
while ((carId = carIds.IterateNext()) != null)
{
Console.WriteLine("Car id: " + carId.TextContent);
}
}
}
C# で XPath を使用してノードを選択する - 続きを読む
ドキュメンテーション セクションの次のトピックにアクセスすると、XPath クエリの操作についてさらに詳しく知ることができます。
C# で HTML または XML からノードを選択する XPath クエリ - 無料評価ライセンス
無料の一時ライセンス をリクエストすることで、制限なしに API 機能を最大限にテストすることができます。
結論
この記事では、XPath Query Document.Evaluate メソッドを使用して、XPath 式に一致する特定のノードまたは選択したノードの特定のコンテンツを選択する方法を学習しました。また、ご不明な点がございましたら、無料サポート フォーラム までご連絡ください。