.NET 幫助

Html Agility Pack C#(它對開發人員的工作方式)

發佈 2024年6月4日
分享:

介紹

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

另一方面,IronPDF 是一個功能豐富的 .NET 庫,用於處理 PDF 文件。由於 IronPDF 允許開發人員從 HTML 內容、URLs或原始數據動態生成 PDF 文件,因此它是一個生成文件、報告和數據可視化的寶貴工具。

為了簡化 .NET 應用程序中的文件生成,我們將在這篇文章中介紹如何將 IronPDF 與 HtmlAgilityPack 連接。結合這些技術允許程序員與遠程系統互動,生成動態 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 解析功能,開發人員可以從各種來源(包括檔案、URL 和字串)加載 HTML 文件。由於其寬鬆的解析方式,能夠靈活處理格式不佳或不正確的 HTML,使其適合用於 HTML 標記質量可能各異的網頁抓取活動。

DOM 操作

用於探索、瀏覽和處理 HTML 文件物件模型 (DOM) 結構方面,HAP 提供了一個易於使用的 API。HTML 元素、屬性和文本節點都可以由開發者以程式化的方式新增、移除或修改,允許動態操控 HTML 內容。

XPath 和 LINQ 支援

為了選擇和查詢 HTML 元件,HTML 敏捷包支持 LINQ (語言集成查詢) 以及 XPath 語法搜索。要根據 HTML 文件中的屬性、標籤或層次結構選擇項目,XPath 表達式查詢提供了強大且易於理解的語法。對於習慣使用 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 文件的一個最重要的工具是 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 查詢特定選擇文件中的節點。從上述程式碼中,我們特定選取具有 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 結合起來。透過使用 HTML Agility Pack 進行 HTML 解析和 IronPDF 對於 PDF 轉換,開發人員可以輕鬆自如地自動化從動態線上資料創建 PDF 文件。欲了解更多有關 IronPDF 文件,請參閱 這裡.

安裝 IronPDF

  • 啟動 Visual Studio 專案。
  • 選擇「工具」>「NuGet 套件管理員」>「套件管理員主控台」。
  • 在套件管理員主控台中輸入以下命令:
Install-Package IronPdf
  • 另外,您可以使用 NuGet 套件管理器來為解決方案安裝 IronPDF。
  • 您可以瀏覽、選擇 IronPDF 套件的搜尋結果,然後點擊「安裝」按鈕。Visual Studio 會為您處理安裝和下載。

    Html Agility Pack C#(對開發者的運作方式):圖 3 - 使用 NuGet 套件管理器中的“管理 NuGet 套件 for Solution”安裝 IronPDF,在 NuGet 套件管理器的搜索欄中搜索“IronPdf”,然後選擇項目並點擊安裝按鈕。

  • 透過NuGet安裝IronPDF套件及專案所需的任何相依性。
  • 安裝後,IronPDF可以用於您的專案。

通過 NuGet 網站安裝

要了解有關 IronPDF 的功能、相容性和其他下載選擇的更多信息,請參閱其頁面: https://www.nuget.org/packages/IronPdf 在 NuGet 網站上。

使用DLL進行安裝

作為替代方法,您可以使用IronPDF的DLL文件將其直接整合到您的項目中。點擊這個 連結 獲取包含DLL的ZIP文件。解壓後,將DLL整合到您的項目中。

實現邏輯

透過整合這兩個庫的功能,HTML Agility Pack (HAP) IronPDF 可以使用 C# 來讀取 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;        
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 數據還是創建 PDF 報告,開發人員都可以通過 HTML Agility Pack 和 IronPDF 在 C# 中的順暢整合,輕鬆管理和修改文檔內容。通過結合 IronPDF 的 PDF 生成功能和 HTML Agility Pack 的解析能力,開發人員可以輕鬆精確地自動化與文檔相關的操作。無論是製作動態報告還是從網頁中提取數據,這兩個庫的組合提供了一個強大的 C# 文檔管理解決方案。

Lite License Lite 套餐包含永續許可證、一年的軟體維護和庫升級。IronPDF 提供有限期和再分發限制的免費許可。在試用期間,用戶可以評估解決方案而不會看到浮水印。請前往 IronPDF 的許可頁面。 學習 了解更多的費用及授權。欲了解更多關於Iron Software庫的信息,請訪問此 頁面.

< 上一頁
docfx C#(它如何運作給開發者)
下一個 >
C#繼續(對開發人員的工作方式)

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 10,993,239 查看許可證 >