跳至頁尾內容
.NET 幫助

HTML敏捷工具包C#(開發者使用方法)

在 C# 開發領域,動態管理和操作文件內容的需求非常普遍。 開發人員通常依靠強大的程式庫來自動執行諸如創建 PDF 報告和從網頁中提取資料之類的活動。 本文探討了在 C# 中直接整合 IronPDF 和 HTML Agility Pack 的方法,並提供了程式碼範例來示範如何使用這些程式庫輕鬆建立 PDF 文件和讀取 HTML 文字。

IronPDF 是一個功能豐富的 .NET 程式庫,用於處理 PDF 檔案。 IronPDF 讓開發人員可以從 HTML 內容、URL 或原始資料動態產生 PDF 文件,因此它是文件建立、報告和資料視覺化的寶貴工具。

為了簡化 .NET 應用程式中的文件產生流程,本文將探討如何將 IronPDF 與 HTML Agility Pack 連接起來。結合這些技術,程式設計師可以與遠端系統合作、產生動態 PDF 頁面,並透過網路連線獲取數據,從而提高程式的效率和可擴展性。

如何在 C# 中使用 HtmlAgilityPack

  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 解析功能,開發人員可以從各種來源載入 HTML 文檔,包括文件、URL 和字串。 由於其寬鬆的解析方法,它可以優雅地處理格式不良或錯誤的 HTML,使其適用於 HTML 標記品質可能有所不同的網頁抓取活動。

DOM 操作

HAP 提供了一個使用者友善的 API,用於探索、瀏覽和使用 HTML 文件物件模型 (DOM) 結構。 開發人員可以透過程式設計方式新增、刪除或修改 HTML 元素、屬性和文字節點,從而實現動態 HTML 內容操作。

XPath 和 LINQ 支持

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

HtmlAgilityPack 入門指南

在 C# 專案中設定 HtmlAgilityPack

HtmlAgility 基類庫以單一捆綁包的形式提供,可透過安裝 NuGet 來取得,並可在 C# 專案中使用。 它提供 HTML 文件和 HTML URL 的 HTML 解析器和 CSS 選擇器。

在 Windows 控制台和窗體中實作 HtmlAgilityPack

許多 C# 應用程式類型,例如 Windows 窗體 (WinForms) 和 Windows 控制台,都實作了 HtmlAgilityPack。 雖然不同框架的具體實現方式有所不同,但基本思想保持不變。

! HtmlAgilityPack C#(開發者使用方法):圖 1 - 使用 NuGet 套件管理器搜尋 HtmlAgilityPack 並安裝它

HtmlAgilityPack C# 範例

HTML Agility Pack (HAP) 是 C# 開發人員工具箱中用於導覽、處理和操作 HTML 文件的最重要工具之一。 它的使用者友善 API 使得從 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();
$vbLabelText   $csharpLabel

在這個範例中,我們使用 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 Agility Pack 的演算法和資料結構能夠很好地處理大型 HTML 文本,它針對速度和效率進行了最佳化。 它透過減少記憶體使用和處理開銷,確保快速回應的 HTML 內容解析和操作。

將 HtmlAgilityPack 與 IronPdf 集成

將 IronPDF 與 HtmlAgilityPack 結合使用

當 HTML Agility Pack 和IronPDF for PDF Conversion結合使用時,文件管理和報告創建的可能性是無限的。 透過使用 HTML Agility Pack 進行 HTML 解析和IronPDF Documentation進行 PDF 轉換,開發人員可以輕鬆地從動態線上資料自動建立 PDF 文件。

安裝 IronPDF

  • 啟動 Visual Studio 專案。
  • 選擇"工具">"NuGet 套件管理員">"套件管理員控制台"。
  • 在軟體包管理器控制台中輸入以下命令:
Install-Package 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 內容:若要從文件、字串或 URL 等來源載入 HTML 材料,請使用 HTML Agility Pack。 在此階段,解析 HTML 文件並建立一個可操作的 HTML 文件物件。 2.擷取所需內容:若要從 HTML 文件中選擇並擷取特定內容,請將 HTML Agility Pack 與 XPath 或 LINQ 查詢結合使用。 這可能包括根據元素的屬性、標籤或層級結構來選擇元素。 3.使用 IronPDF 將 HTML 轉換為 PDF:要從檢索到的 HTML 內容建立 PDF 文檔,請使用 IronPDF。 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 套件管理器進行安裝。安裝完成後,您可以匯入必要的命名空間,並開始在應用程式中解析 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 查詢來導航和提取基於特定節點或屬性的數據,從而簡化 Web 資料擷取。

將 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 核心程式碼庫的最初開發者,他自公司成立之初便參與塑造了其產品架構,並與執行長 Cameron Rimington 一起將其發展成為一家擁有 50 多名員工、服務於 NASA、特斯拉和全球政府機構的公司。

Jacob 於 1998 年至 2001 年在曼徹斯特大學獲得土木工程一級榮譽學士學位。 1999 年,他在倫敦創辦了自己的第一家軟體公司;2005 年,他創建了自己的第一個 .NET 元件。此後,他專注於解決微軟生態系統中的複雜問題。

他的旗艦產品 IronPDF 和 IronSuite .NET 庫在全球 NuGet 上的安裝量已超過 3000 萬次,其基礎程式碼持續為全球開發者工具提供支援。憑藉 25 年的商業經驗和 41 年的程式設計專長,Jacob 始終致力於推動企業級 C#、Java 和 Python PDF 技術的創新,同時指導下一代技術領導者。