フッターコンテンツにスキップ
.NETヘルプ

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

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

IronPDF は、PDF ファイルを扱うための機能が豊富な .NET ライブラリです。 IronPDF は、HTML コンテンツ、URL、または生データから動的に PDF ファイルを生成できるため、文書作成、報告、データ可視化のための貴重なツールとして機能します。

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

HtmlAgilityPack を C# で使用する方法

  1. 新しい C# プロジェクトを作成します。
  2. ライブラリ HtmlAgilityPack をインストールします。
  3. 名前空間をインポートします。 オブジェクトを作成します。
  4. URL からデータをインポートし、HTML を解析します。
  5. 必要なデータを取得し、オブジェクトを破棄します。

HtmlAgilityPack 入門

HTML Agility Pack は、.NET 開発者向けの多用途で強力な HTML 解析ライブラリです。 その広範な API コレクションの助けを借りて、開発者は HTML ドキュメントを簡単にナビゲートし、変更し、データを抽出することができます。 HTML Agility Pack は、経験レベルを問わず、すべての開発者にとってプログラムで HTML コンテンツを操作しやすくします。

HTML Agility Pack が無秩序または不完全なHTMLを優しく管理できる能力が、それをユニークなものにしています。 それは、最も悪く構築されたHTMLさえも解析できる寛大な解析アルゴリズムを使用しているため、HTML マークアップの品質が変化する可能性のあるオンライン スクレイピング操作に最適です。

HtmlAgilityPack の機能

HTML 解析

HTML Agility Pack が提供する強力な HTML 解析機能により、開発者はファイル、URL、文字列を含むさまざまなソースから HTML ドキュメントを読み込むことができます。 その寛容な解析アプローチにより、フォーマットが不十分または間違った HTML を優雅に処理でき、HTML マークアップの品質が変化する可能性のある Web スクレイピング活動に適しています。

DOM 操作

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

XPath と LINQ のサポート

HTML コンポーネントを選択およびクエリするために、HTML Agility Pack は LINQ (Language Integrated Query) および XPath 構文検索をサポートしています。 XPath 式クエリは、属性、タグ、または階層に応じて HTML ドキュメント内の項目を選択するための強力で理解しやすい構文を提供します。 C# で LINQ を使用している開発者向けに、LINQ クエリは他の .NET コンポーネントとのスムーズな統合を促進する親しみやすいクエリ構文を提供します。

HtmlAgilityPack の使い方

C# プロジェクトで HtmlAgilityPack を設定する

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

Windows コンソールおよびフォームでの HtmlAgilityPack の実装

Windows Forms (WinForms) や Windows Console など、多くの C# アプリケーション タイプは HtmlAgilityPack を実装します。 実装はフレームワークごとに異なりますが、基本的な考え方は変わりません。

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

HtmlAgilityPack C# の例

HTML ドキュメントをナビゲート、処理、および操作するための C# 開発者ツールボックスで最も重要なツールの 1 つであるのが 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()
$vbLabelText   $csharpLabel

この例では、URL から HTML ノード マテリアルを HTML Agility Pack を使用して読み込みます。 HTML は、var doc に読み込まれ、解析および操作されます。 コンテンツを抽出するために、プログラムはまず HTML ドキュメントのルート ノードを識別し、次に XPath クエリを使用してドキュメント内のノードを特定します。 上記のコードから、HTML データの文字列から class 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 Agility Pack のアルゴリズムとデータ構造は、速度と効率を最適化しているため、大規模な HTML テキストをうまく処理できます。 メモリ使用量と処理負荷を最小限に抑えることで、迅速かつ応答性の高い HTML コンテンツの解析と操作を確保します。

IronPdf との HtmlAgilityPack の統合

IronPDF と HtmlAgilityPack の活用

HTML Agility Pack と PDF 変換用 IronPDF を組み合わせることで、文書管理とレポート作成の可能性が無限大になります。 HTML Agility Pack を使った HTML 解析と、IronPDF のドキュメント を用いた PDF 変換を通じて、開発者は動的なオンライン資料からの PDF ドキュメントの作成を容易に自動化できます。

IronPDF のインストール

  • Visual Studio プロジェクトを開きます。
  • 「ツール」 > 「NuGet パッケージ マネージャー」 > 「パッケージ マネージャー コンソール」を選択します。
  • このコマンドをパッケージ マネージャー コンソールに入力します:
Install-Package IronPdf
  • 代替として、NuGet パッケージ マネージャーを使用してソリューションのために IronPDF をインストールすることができます。
  • IronPDF パッケージの検索結果をブラウズし、選択した後、「インストール」ボタンをクリックできます。 Visual Studio がインストールとダウンロードを担当します。

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

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

NuGet ウェブサイトを介したインストール

IronPDF の機能、互換性、およびその他のダウンロードオプションについて詳しくは、NuGet の IronPDF NuGet パッケージ情報を参照してください。

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

代わりに、IronPDF の DLL ファイルを使用して、プロジェクトに直接統合することもできます。 IronPDF DLL をダウンロード をクリックして、DLL を含む ZIP ファイルを取得します。 解凍後、DLL をプロジェクトに組み込みます。

ロジックの実装

両方のライブラリを統合することで、HTML Agility Pack (HAP) と IronPDF を C# に実装して HTML 情報を読み取り、動的に PDF ドキュメントを生成できます。 実装の手順について以下にリストし、各手順を解説するサンプル コードを示します。

  1. HTML コンテンツを HTML Agility Pack を使用して読み込む: HTML Agility Pack を使用して、ファイル、文字列、URL などのソースから HTML 素材を読み込む。 この段階では、HTML ドキュメントが解析され、操作可能な HTML ドキュメント オブジェクトが作成されます。
  2. 必要なコンテンツを抽出する: HTML Agility Pack と XPath または LINQ クエリを組み合わせて HTML ドキュメントから特定のコンテンツを選択および抽出します。 これは、プロパティ、タグ、または階層に応じて要素を選択することを意味するかもしれません。
  3. IronPDF を使用して HTML を PDF に変換する: IronPDF を使用して、取得した HTML コンテンツから PDF ドキュメントを作成します。 IronPDF は、HTML 素材をスタイルとレイアウトを保持しながら簡単に PDF 形式に変換します。
  4. オプション: PDF 出力をカスタマイズする: IronPDF を使用して、必要に応じてヘッダー、フッター、ページ番号付け、およびその他の動的要素を追加して PDF 出力をカスタマイズします。 このステップは、得られる PDF ドキュメントの外観と使いやすさを向上させます。
  5. PDF ドキュメントを保存またはストリームする: 作成された PDF ドキュメントは、ダウンロード用にクライアントまたはブラウザに直接ストリームするか、ファイルに保存できます。IronPDF は、さまざまな出力ストリームへの PDF ファイルの保存方法を提供します。
using HtmlAgilityPack;
using IronPdf;
using System;
using System.Text;

class Program
{
    static void Main()
    {
        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 HtmlToPdf();
        var PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString());

        // Save PDF to file
        PDF.SaveAs("output.pdf");
        Console.WriteLine("PDF generated successfully!");
        Console.ReadKey();
    }
}
using HtmlAgilityPack;
using IronPdf;
using System;
using System.Text;

class Program
{
    static void Main()
    {
        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 HtmlToPdf();
        var PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString());

        // Save PDF to file
        PDF.SaveAs("output.pdf");
        Console.WriteLine("PDF generated successfully!");
        Console.ReadKey();
    }
}
Imports HtmlAgilityPack
Imports IronPdf
Imports System
Imports System.Text

Friend Class Program
	Shared Sub Main()
		Dim htmlContent As New StringBuilder()

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

		' Select specific elements using XPath or LINQ
		Dim 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 HtmlToPdf()
		Dim PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString())

		' Save PDF to file
		PDF.SaveAs("output.pdf")
		Console.WriteLine("PDF generated successfully!")
		Console.ReadKey()
	End Sub
End Class
$vbLabelText   $csharpLabel

変換に IronPDF を使用する で、コード例について詳しく学んでください。

Html Agility Pack C# (開発者向けの機能方法): 図 4 - IronPDF ホームページ

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

上記コードの例出力

結論

HTML データを解析する場合でも、PDF レポートを作成する場合でも、開発者は C# における HTML Agility Pack と IronPDF のスムーズな統合のおかげで、ドキュメント資料を簡単に管理し、変更できます。 IronPDF の PDF プロダクション機能と HTML Agility Pack の解析機能を組み合わせることで、開発者は文書関連のタスクを簡単かつ正確に自動化できます。 これら 2 つのライブラリの組み合わせは、動的なレポートを作成する場合でも、Web ページからデータを引き出す場合でも、強力な C# ドキュメント管理ソリューションを提供します。

$799 Lite バンドルには、永続ライセンス、1 年間のソフトウェア メンテナンス、およびライブラリのアップグレードが含まれています。 IronPDF は、時間的および再配布の制限付きで無料ライセンスを提供します。 試用期間中、ユーザーは透かしを表示せずにソリューションを評価できます。 コストやライセンスについて詳しくは、IronPDF の ライセンス情報 にアクセスしてください。

Iron Software ライブラリ についてさらに学びましょう。

よくある質問

C# で HTML を PDF に変換するにはどうすればいいですか?

IronPDF の RenderHtmlAsPdf メソッドを使用して、HTML 文字列を PDF に変換できます。RenderHtmlFileAsPdf を使用して HTML ファイルを PDF に変換することもできます。

C#プロジェクトでHtmlAgilityPackを使用する目的は何ですか?

HtmlAgilityPackは、C#プロジェクトでHTMLドキュメントを解析し操作するために使用されます。形式が不正なHTMLを処理できるため、ウェブスクレイピングやデータ抽出のタスクに最適です。

C#アプリケーションでHtmlAgilityPackをセットアップするにはどうすればいいですか?

HtmlAgilityPackをセットアップするには、Visual StudioのNuGetパッケージマネージャーを使用してインストールします。インストール後、必要な名前空間をインポートし、アプリケーションでHTMLコンテンツの解析を開始できます。

IronPDFとHtmlAgilityPackはドキュメント作成に一緒に使用できますか?

はい、IronPDFとHtmlAgilityPackを組み合わせることで、HTMLコンテンツから動的なPDFドキュメントを作成できます。HtmlAgilityPackはHTMLデータを抽出し操作し、それをIronPDFでPDFに変換できます。

.NET開発者向けのIronPDFの主な特徴は何ですか?

IronPDFは、HTMLをPDFに変換する機能、PDFのマージ、PDFへのテキストや画像の追加などの機能を提供します。.NETアプリケーションでの強力なPDFドキュメント管理のための幅広い機能をサポートしています。

HtmlAgilityPackはウェブページからデータを抽出するのにどのように役立ちますか?

HtmlAgilityPackは開発者がHTMLドキュメントをロードし、XPathやLINQクエリを使用して特定のノードや属性に基づいてデータをナビゲートおよび抽出できるようにし、ウェブデータの抽出を促進します。

PDFライブラリとHtmlAgilityPackを統合する利点は何ですか?

IronPDFをHtmlAgilityPackと統合することで、動的なHTMLコンテンツをPDFレポートに変換し、.NETアプリケーションでドキュメント生成を効率化できます。

コンソールアプリケーションでIronPDFを使用することは可能ですか?

はい、IronPDFはWindowsコンソールアプリケーションを含むさまざまなC#アプリケーションタイプに実装可能で、柔軟なドキュメント処理とPDF生成を実現します。

HtmlAgilityPackで実行できるHTML操作の種類は何ですか?

HtmlAgilityPackは、HTMLノードや要素の追加、削除、または変更、DOM構造の再編成などの操作をサポートしており、HTMLドキュメント操作のための多用途なツールです。

IronPDFは開発者向けに無料トライアルを提供していますか?

IronPDFは、無料ライセンスを特定の制限付きで提供し、開発者が購入する前にその機能をテストする機会を提供し、トライアル期間中にはウォーターマークなしでライブラリを評価することができます。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。