.NET ヘルプ

Html Agility Pack C# (開発者向けの動作方法)

更新済み 6月 4, 2024
共有:

イントロダクション

C#開発の世界では、ドキュメント内容を動的に管理および操作する必要性が広く認識されています。 開発者は一般的に、PDFレポートの作成やウェブページからのデータ抽出などの活動を自動化するために、強力なライブラリに依存しています。 この記事では、C#におけるIronPDFとHTML Agility Packの簡単な統合について探求し、これらのライブラリを使用してPDF文書を簡単に作成し、HTMLテキストを読み取る方法を示すコード例を提供します。

一方、IronPDFはPDFファイルを操作するための機能豊富な.NETライブラリです。 IronPDFを使用すると、開発者はHTMLコンテンツ、URL、または生データから動的にPDFファイルを生成できるため、ドキュメント作成、レポート、およびデータ視覚化のための価値あるツールとなります。

.NETアプリケーションでのドキュメント生成を効率化するために、この投稿ではIronPDFとHtmlAgilityPackを接続する方法を見ていきます。これらの技術を組み合わせることで、プログラマーはリモートシステムと連携し、動的なPDFページを生成し、ネットワーク接続を通じてデータを取得することが可能になります。これにより、プログラムの生産性とスケーラビリティが向上します。

C#でHtmlAgilityPackを使用する方法

  1. 新しいC#プロジェクトを作成します。

  2. ライブラリHtmlAgilityPackをインストールする。

  3. 名前空間をインポートします。 オブジェクトを作成します。

  4. URLからデータをインポートし、HTMLを解析します。

  5. 必要なデータを取得し、オブジェクトを破棄します。

HtmlAgilityPackの概要

HTML アジリティ パック は、.NET開発者向けの多用途で強力なHTML解析ライブラリです。 APIの幅広いコレクションの助けを借りて、開発者はHTMLドキュメントからデータを簡単にナビゲート、変更、および抽出することができます。 HTML Agility Packは、経験レベルに関係なくすべての開発者にとってHTMLコンテンツをプログラムで扱うことを容易にします。

HTML Agility Packが特殊である理由は、構造が悪いまたは誤ったHTMLを優しく処理できる能力にあります。 それは、HTMLマークアップの品質が変動し得るオンラインスクレイピング操作に最適です。なぜなら、最も悪く構造されたHTMLでも解析可能な寛容なパーシングアルゴリズムを使用しているからです。

HtmlAgilityPackの機能

HTML解析

HTML Agility Packが提供する強力なHTMLパーシング機能により、開発者はファイル、URL、文字列など、さまざまなソースからHTMLドキュメントを読み込むことができます。 寛容なパーシングアプローチを採用しているため、形式が悪い、または誤ったHTMLを優雅に処理でき、HTMLマークアップの品質が異なるウェブスクレイピング活動に適しています。

DOM操作(DOM Sōsa)

HTMLドキュメントオブジェクトモデルを探索、閲覧、および操作するために (DOM(文書オブジェクトモデル)) 構造、HAPはユーザーフレンドリーなAPIを提供します。 HTML要素、属性、およびテキストノードはすべて、開発者によってプログラム的に追加、削除、または変更することができ、動的なHTMLコンテンツの操作が可能です。

XPathおよびLINQサポート

HTML コンポーネントの選択およびクエリのために、HTML Agility Pack は LINQ をサポートします。 (言語統合クエリ (Language Integrated Query)) XPath構文検索も対応しています。 HTMLドキュメント内のアイテムをその属性、タグ、または階層に従って選択するために、XPath式クエリは強力で理解しやすい構文を提供します。 LINQを使用してC#で作業することに慣れている開発者にとって、LINQクエリは他の.NETコンポーネントとのスムーズな統合を容易にするお馴染みのクエリ構文を提供します。

HtmlAgilityPackを使い始める

C#プロジェクトでHtmlAgilityPackをセットアップする

HtmlAgility Base Class Libraryは、Nugetにインストールして使用できる単一のバンドルパッケージで提供され、C#プロジェクトで使用できます。 HTMLドキュメントやHTML URLからHTMLパーサーとCSSセレクターを提供します。

WindowsコンソールとフォームでHtmlAgilityPackを実装する

多くのC#アプリケーションタイプ、例えばWindows Forms (WinForms) およびWindowsコンソール、HtmlAgilityPackを実装します。 実装はフレームワークによって異なるものの、基本的な考え方は変わりません。

Html Agility Pack C#(開発者向けの動作方法):図1 - NuGetパッケージマネージャーを使用してHtmlAgilityPackを検索し、インストールします

HtmlAgilityPack C# 例

C# 開発者のツールボックスで、HTML ドキュメントをナビゲート、処理、操作するための最も重要なツールの一つが HTML Agility Pack です。 (HAP). HTMLページからのデータ抽出は、要素の整然とした木構造のように機能する使いやすいAPIによって簡単になります。 簡単なコード例を見て、どのように使用するかを説明しましょう。

using HtmlAgilityPack;

// Load HTML content from a file or URL
HtmlWeb web = new HtmlWeb();
var doc = web.Load("https://ironpdf.com/");

// Select specific html nodes and parse html string
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']");

// Iterate through selected nodes and extract content
foreach (HtmlNode node in nodes)
{
    Console.WriteLine(node.InnerText);
}
Console.ReadKey();
using HtmlAgilityPack;

// Load HTML content from a file or URL
HtmlWeb web = new HtmlWeb();
var doc = web.Load("https://ironpdf.com/");

// Select specific html nodes and parse html string
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']");

// Iterate through selected nodes and extract content
foreach (HtmlNode node in nodes)
{
    Console.WriteLine(node.InnerText);
}
Console.ReadKey();
Imports HtmlAgilityPack

' Load HTML content from a file or URL
Private web As New HtmlWeb()
Private doc = web.Load("https://ironpdf.com/")

' Select specific html nodes and parse html string
Private nodes As HtmlNodeCollection = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']")

' Iterate through selected nodes and extract content
For Each node As HtmlNode In nodes
	Console.WriteLine(node.InnerText)
Next node
Console.ReadKey()
VB   C#

この例では、HTML Agility Packを使用してURLからHTMLノードを読み込みます。 HTMLは次に var doc にロードされ、解析および操作が行われます。 コンテンツを抽出するために、プログラムはまずHTMLドキュメントのルートノードを特定し、次にXPathクエリを使用してドキュメント内のノードを特定します。 上記のコードから、HTMLデータの文字列からクラスproduct-homepage-headerを持つdiv要素を特に選択し、選択された各ノードの内側のテキストをコンソールに出力します。

Html Agility Pack C#(開発者向けの仕組み):図2 - `product-homepage-header` クラスの内部テキストを取得して抽出したテキスト

HtmlAgilityPack の操作

HTML変換

開発者はHTML Agility Packを使用してHTMLテキストに対して様々な変換や操作を行うことができます。 これは、HTMLドキュメントのDOM階層を再編成することに加えて、テキストノード、要素、および属性の追加、削除、または変更などの操作をカバーします。

拡張性

HAPは拡張可能に設計されているため、プログラマーは新しい機能や動作を追加して、その機能を高めることができます。 提供されたAPIを使用して、開発者は独自のHTMLパーサー、フィルター、または操作を設計し、HAPをそれぞれのニーズやユースケースに合わせてカスタマイズできます。

パフォーマンスと効率

大規模なHTMLテキストは、速度と効果を最大限に発揮するように調整されたHTML Agility Packのアルゴリズムとデータ構造によってうまく処理できます。 メモリ使用量と処理のオーバーヘッドを削減することで、迅速かつ応答性の高いHTMLコンテンツの解析と操作を実現します。

IronPdfとHtmlAgilityPackの統合

HtmlAgilityPackと連携したIronPDFの使用

HTML Agility PackとIronPDFを使用すると、文書管理やレポート作成の可能性は無限大です。 IronPDF 組み合わせられています。 HTML解析にはHTML Agility Packを使用し、 IronPDF PDF変換では、開発者は動的なオンライン資料からPDFドキュメントを自動生成することが容易にできます。 以下の内容について詳しく知るには: IronPDF ドキュメントについては、参照してください これ.

IronPDF をインストール

  • Visual Studio プロジェクトを起動します。
  • 「ツール」 > 「NuGet パッケージ マネージャー」 > 「パッケージ マネージャー コンソール」を選択します。

  • パッケージマネージャーコンソールに以下のコマンドを入力してください:
Install-Package IronPdf
  • 代替として、ソリューション用のNuGetパッケージマネージャーを使用してIronPDFをインストールすることができます。
  • IronPDFパッケージの検索結果を閲覧し、選択してから「インストール」ボタンをクリックできます。 Visual Studioは、インストールとダウンロードを自動で行います。

    Html Agility Pack C#(開発者向けの使い方):図3 - NuGet パッケージ マネージャの検索バーで「IronPDF」と検索し、ソリューションの Manage NuGet Package を使用して IronPDF をインストールします。次に、プロジェクトを選択し、インストール ボタンをクリックします。

  • IronPDFパッケージおよびプロジェクトに必要な依存関係は、NuGetによってインストールされます。
  • インストール後、IronPDFはあなたのプロジェクトで使用できます。

NuGetウェブサイトからインストールする

機能、互換性、その他のダウンロードオプションについてもっと知りたい方は、IronPDFのページをご覧ください: https://www.nuget.org/packages/IronPdf NuGetのウェブサイトで。

DLL を使用してインストール

代替案として、IronPDFのDLLファイルを使用してプロジェクトに直接統合することができます。 クリックしてください リンク DLL を含む ZIP ファイルを取得するために。 解凍後、DLLをプロジェクトに組み込んでください。

ロジックの実装

HTML Agility Packの機能を両方のライブラリに統合することにより (HAP) そして、IronPDFはHTML情報を読み取り、即座にPDFドキュメントを生成するためにC#で実装することができます。 実装の手順は以下にリストされており、各手順を説明するサンプルコードが含まれています。

  1. HTML Agility Packを使用してHTMLコンテンツを読み込む: ファイル、文字列、またはURLなどのソースからHTML素材を読み込むには、HTML Agility Packを使用してください。 このフェーズでは、HTMLドキュメントが解析され、操作可能なHTMLドキュメントオブジェクトが作成されます。

  2. 特定のコンテンツを抽出するには、XPathまたはLINQクエリを使用してHTML Agility Packを併用し、HTMLドキュメントから希望のコンテンツを選択して抽出します。 これは、プロパティ、タグ、または階層構造に従って要素を選択することを意味します。

  3. IronPDF を使用して HTML を PDF に変換: 取得した HTML コンテンツから PDF ドキュメントを作成するには、IronPDF を使用します。 IronPDFは、スタイルとレイアウトを維持しながら、HTML素材を簡単にPDFフォーマットに変換します。

  4. オプション: PDF出力をカスタマイズ: 必要に応じて、IronPDFを使用してヘッダー、フッター、ページ番号、他の動的コンポーネントを追加し、PDF出力をカスタマイズします。 このステップは、生成されるPDFドキュメントの外観と使いやすさを向上させます。

  5. PDFドキュメントの保存またはストリーミング: 作成されたPDFドキュメントは、クライアントやブラウザーに直接ストリーミングしてダウンロードすることができるか、ファイルに保存することができます。IronPDFは、PDFファイルをさまざまな出力ストリームに保存する方法を提供しています。
using HtmlAgilityPack;        
StringBuilder htmlContent=new StringBuilder();

// Load HTML content from a file or URL
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load("https://ironpdf.com/");
// Select specific elements using XPath or LINQ
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']");

// Iterate through selected nodes and extract content
foreach (HtmlNode node in nodes)
{
    htmlContent.Append(node.OuterHtml);
    Console.WriteLine(node.InnerText);
}
// Convert HTML content to PDF using IronPDF
var Renderer = new IronPdf.HtmlToPdf();
var PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString());
// Save PDF to file
PDF.SaveAs("output.pdf");
Console.WriteLine("PDF generated successfully!");
Console.ReadKey();
using HtmlAgilityPack;        
StringBuilder htmlContent=new StringBuilder();

// Load HTML content from a file or URL
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load("https://ironpdf.com/");
// Select specific elements using XPath or LINQ
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']");

// Iterate through selected nodes and extract content
foreach (HtmlNode node in nodes)
{
    htmlContent.Append(node.OuterHtml);
    Console.WriteLine(node.InnerText);
}
// Convert HTML content to PDF using IronPDF
var Renderer = new IronPdf.HtmlToPdf();
var PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString());
// Save PDF to file
PDF.SaveAs("output.pdf");
Console.WriteLine("PDF generated successfully!");
Console.ReadKey();
Imports HtmlAgilityPack
Private htmlContent As New StringBuilder()

' Load HTML content from a file or URL
Private web As New HtmlWeb()
Private doc As HtmlDocument = web.Load("https://ironpdf.com/")
' Select specific elements using XPath or LINQ
Private nodes As HtmlNodeCollection = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']")

' Iterate through selected nodes and extract content
For Each node As HtmlNode In nodes
	htmlContent.Append(node.OuterHtml)
	Console.WriteLine(node.InnerText)
Next node
' Convert HTML content to PDF using IronPDF
Dim Renderer = New IronPdf.HtmlToPdf()
Dim PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString())
' Save PDF to file
PDF.SaveAs("output.pdf")
Console.WriteLine("PDF generated successfully!")
Console.ReadKey()
VB   C#

訪問する これ コード例の詳細について学ぶには。

Html Agility Pack C# (開発者向けの仕組み): 図4 - IronPDF ホームページ

実行結果は以下に示されています:

上記のコードからの出力例

結論

HTML Agility PackとIronPDFをC#でスムーズに統合することで、HTMLデータの解析やPDFレポートの作成など、開発者はドキュメントの内容を簡単に管理および変更することができます。 開発者は、IronPDFのPDF生成機能をHTML Agility Packの解析機能と組み合わせることにより、文書に関連する操作を簡単かつ正確に自動化することができます。 これら二つのライブラリを組み合わせることで、動的レポートの作成やウェブページからのデータ取得において強力なC#ドキュメント管理ソリューションを提供します。

$749 Liteバンドルには、永久ライセンス、1年間のソフトウェアメンテナンス、およびライブラリのアップグレードがすべて含まれています。 IronPDF は、時間的および再配布の制限付きで無料ライセンスを提供します。 試用期間中、ユーザーは透かしを表示せずにソリューションを評価することができます。 IronPDFのライセンスページに移動してください。 学ぶ 費用とライセンスについて詳しく見る。 Iron Softwareのライブラリについて詳しく知りたい場合は、こちらをご覧ください ページ.

< 以前
docfx C#(開発者向けの使用方法)
次へ >
C# 継続(開発者にとっての働き方)

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 10,659,073 View Licenses >