跳過到頁腳內容
.NET幫助

Html Agility Pack C#(對於開發者的運行原理)

在C#開發的世界中,動態管理和操作文件內容的需求非常普遍。 開發人員通常依賴於強大的程式庫來自動化創建PDF報告和從網頁中提取數據等活動。 本文探討了IronPDF和HTML Agility Pack在C#中的簡單整合,並提供代碼示例以展示如何使用這些程式庫輕鬆創建PDF文件和讀取HTML文本。

IronPDF是一個功能豐富的.NET程式庫,用於處理PDF文件。 由於IronPDF允許開發人員從HTML內容、網址或原始數據動態生成PDF文件,這使其成為文件創建、報告和數據可視化的寶貴工具。

為了簡化.NET應用程序中的文件生成流程,本文將探討如何將IronPDF與HTML Agility Pack連接。結合這些技術可以讓程式設計師與遠程系統協同工作,生成動態PDF頁面,並通過網絡連結獲取數據,從而提升程序的生產力和可擴展性。

How to Use HtmlAgilityPack in C#

  1. 創建一個新的C#專案。
  2. 安裝HtmlAgilityPack程式庫。
  3. 引入命名空間。 創建一個對象。
  4. 從URL導入數據並解析HTML。
  5. 獲取所需數據並釋放對象。

HtmlAgilityPack介紹

HTML Agility Pack是一個多功能且強大的HTML解析程式庫,適用於.NET開發人員。 借助其廣泛的API集合,開發人員可以輕鬆導航、修改和從HTML文件中提取數據。 無論開發經驗如何,HTML Agility Pack都能讓開發人員程式化地更輕鬆處理HTML內容。

HTML Agility Pack能夠善於處理組織不良或有缺陷的HTML,這是其獨特之處。 它採用了一種寬容的解析算法,能夠解析即便是構造最差的HTML,也因此非常適合於HTML標記質量可能變化的網絡抓取操作。

HtmlAgilityPack的特點

HTML解析

HTML Agility Pack提供強大的HTML解析功能,開發人員可以從多種來源(包括文件、URL和字符串)加載HTML文檔。 由於其寬容的解析方法,它能夠優雅地處理格式不佳或不正確的HTML,非常適合於HTML標記質量可能變化的網絡抓取活動。

DOM操作

為了探索、瀏覽和操作HTML文檔對象模型(DOM)結構,HAP提供了一個用戶友好的API。 開發人員可以程式化地添加、刪除或修改HTML元素、屬性和文本節點,從而實現動態HTML內容的操作。

XPath和LINQ支持

HTML Agility Pack支持使用LINQ(語言集成查詢)以及XPath語法搜索選擇和查詢HTML元素。 XPath表達式查詢提供了一種強大且易懂的語法,用於根據屬性、標籤或層次結構選擇HTML文檔中的元素。 對於習慣於在C#中使用LINQ的開發人員來說,LINQ查詢提供了一種熟悉的查詢語法,能夠順利地與其他.NET組件整合。

開始使用HtmlAgilityPack

在C#專案中設置HtmlAgilityPack

HtmlAgility基本類程式庫打包在一個單一的包中,可以通過安裝NuGet來使用,並可以在C#專案中使用。 它提供了從HTML文檔和HTML網址到HTML解析器和CSS選擇器的功能。

在Windows控制台和表單中實現HtmlAgilityPack

許多C#應用程序類型(如Windows Forms(WinForms)和Windows控制台)實現了HtmlAgilityPack。 儘管不同框架的實現有所不同,但基本概念始終如一。

Html Agility Pack C#(如何為開發人員服務):圖1 - 使用NuGet包管理器搜索HtmlAgilityPack並安裝

HtmlAgilityPack C#示例

在C#開發人員的工具箱中,HTML Agility Pack(HAP)是用於導航、處理和操作HTML文件的最重要工具之一。 通過其用戶友好的API,數據從HTML頁面提取變得更加簡單,它的工作原理像一棵結構化的元素樹。 讓我們看看一個簡單的代碼示例來演示如何使用它。

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();
$vbLabelText   $csharpLabel

在此示例中,我們使用HTML Agility Pack從URL加載HTML節點材料。 然後將HTML加載到var doc中以進行解析和操作。 為了提取內容,程序首先識別出HTML文檔的根節點,然後使用XPath查詢特別針對文檔內的節點。 從上面的代碼中,我們特別選擇了具有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內容解析和操作。

將HtmlAgilityPack與IronPdf結合

與HtmlAgilityPack一起使用IronPDF

當HTML Agility Pack與IronPDF進行PDF轉換結合時,文檔管理和報告創建的可能性是無窮無盡的。 通過使用HTML Agility Pack進行HTML解析和IronPDF文檔進行PDF轉換,開發人員可以毫不費力地自動從動態在線材料創建PDF文件。

安裝 IronPDF

  • 啟動Visual Studio專案。
  • 選擇"工具" > "NuGet包管理器" > "包管理器控制台"。
  • 在包管理器控制台中輸入此命令:
Install-Package IronPdf
  • 作為替代方案,您可以使用解決方案的NuGet包管理器安裝IronPDF。
  • 可以瀏覽、選擇並點擊"安裝"按鈕來查看IronPDF包的搜索結果。 Visual Studio將為您負責安裝和下載。

    Html Agility Pack C# (How It Works For Developers): Figure 3 - Install IronPDF using the Manage NuGet Package for Solution by searching IronPdf in the search bar of NuGet Package Manager, then select the project and click on the Install button.

  • NuGet將為您的專案安裝IronPDF包和任何所需的依賴項。
  • 安裝後,IronPDF可用於您的專案。

透過 NuGet 網站安裝

要了解有關IronPDF的功能、兼容性和其他下載選擇的更多信息,請參見其在NuGet網站上的<IronPDF NuGet包信息>。

利用 DLL 進行安裝

作為替代方案,您可以使用IronPDF的DLL文件直接整合到您的專案中。 點擊此<IronPDF DLL下載>獲取包含DLL的ZIP文件。 解壓縮後,將DLL集成到您的專案中。

實現邏輯

通過整合這兩個程式庫的功能,可以在C#中實現HTML Agility Pack(HAP)和IronPDF,以即時讀取HTML信息和生成PDF文件。 下面列出了實施的步驟,並附有逐步介紹的樣本代碼:

  1. 使用HTML Agility Pack加載HTML內容:使用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();
    }
}
$vbLabelText   $csharpLabel

訪問利用IronPDF進行轉換以了解更多代碼示例。

Html Agility Pack C#(如何為開發人員服務):圖4 - IronPDF首頁

執行輸出如下所示:

上述代碼的示例輸出

結論

無論是解析HTML數據還是創建PDF報告,HTML Agility Pack和IronPDF在C#中的平滑整合讓開發人員可以輕鬆地管理和改變文件材料。 通過將IronPDF的PDF創建功能與HTML Agility Pack的解析能力相結合,開發人員可以輕鬆且準確地自動化與文件相關的操作。 這兩個程式庫的結合為C#提供了一個強大的文件管理解決方案,無論您是在構建動態報告還是從網頁中提取數據。

在$799 Lite包中包含了永久授權、一年的軟體維護和程式庫升級。 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 Package Manager 安裝。安裝完成後,您可以導入必要的命名空間並在應用程序中開始解析 HTML 內容。

IronPDF 和 HtmlAgilityPack 能否一起用於文件創建?

是的,IronPDF 和 HtmlAgilityPack 可以結合起來從 HTML 內容創建動態 PDF 文件。HtmlAgilityPack 提取並操作 HTML 數據,然後可以使用 IronPDF 將其轉換為 PDF。

IronPDF 對於 .NET 開發人員的主要功能是什麼?

IronPDF 提供的功能包括將 HTML 轉換為 PDF、合併 PDF 以及將文本或圖像添加到 PDF。它支持廣泛的功能,用於 .NET 應用程序中的強大 PDF 文檔管理。

HtmlAgilityPack 如何幫助從網頁中提取數據?

HtmlAgilityPack 允許開發人員加載 HTML 文檔,並使用 XPath 或 LINQ 查詢來導航和提取基於特定節點或屬性的數據,以促進網頁數據提取。

將 PDF 庫與 HtmlAgilityPack 集成的好處是什麼?

將 IronPDF 與 HtmlAgilityPack 結合使用可以通過將動態 HTML 內容轉換為 PDF 報告來增強文檔自動化,從而簡化 .NET 應用程序中的文檔生成。

能否在控制台應用程序中使用 IronPDF?

是的,IronPDF 可以在各種 C# 應用程序類型中實施,包括 Windows 控制台應用程序,這樣可以實現多功能的文檔處理和 PDF 生成。

可使用 HtmlAgilityPack 執行哪些類型的 HTML 操作?

HtmlAgilityPack 支持添加、刪除或修改 HTML 節點和元素,以及重組 DOM 結構等操作,是用於 HTML 文檔處理的多功能工具。

IronPDF 是否提供開發人員的免費試用版?

IronPDF 提供一定限制的免費許可,允許開發人員在試用期間無水印地評估該庫,提供在購買前測試其功能的機會。

Jacob Mellor, Team Iron 首席技術官
首席技術官

Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。

Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。

他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me