.NET 帮助

Html Agility Pack C#(它如何为开发人员工作)

发布 2024年六月4日
分享:

简介

在 C# 开发领域,动态管理和操作文档内容的需求非常普遍。开发人员通常依赖强大的库来自动执行创建 PDF 报告和从网页中提取数据等活动。本文将探讨如何在 C# 中直接集成 IronPDF 和 HTML Agility Pack,并提供代码示例来演示如何使用这些库轻松创建 PDF 文档和读取 HTML 文本。

另一方面,IronPDF 是一个功能丰富的.NET 库,用于处理 PDF 文件。由于 IronPDF 允许开发人员从 HTML 内容、URL 或原始数据动态生成 PDF 文件,因此它是文档创建、报告和数据可视化的重要工具。

为了简化 .NET 应用程序中的文档生成,我们将在本篇文章中探讨如何将 IronPDF 与 HtmlAgilityPack 相结合。结合这些技术,程序员可以与远程系统协同工作,生成动态 PDF 页面,并通过网络连接获取数据,同时提高程序的生产力和可扩展性。

如何在 C&num 中使用 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 操作

用于探索、浏览和处理 HTML 文档对象模型 (DOM) HAP 提供了用户友好的应用程序接口。开发人员可以通过编程添加、删除或修改 HTML 元素、属性和文本节点,从而实现动态的 HTML 内容操作。

XPath 和 LINQ 支持

为选择和查询 HTML 组件,HTML Agility Pack 支持 LINQ (语言综合查询) 以及 XPath 语法搜索。要根据 HTML 文档中的属性、标记或层次结构选择项目,XPath 表达式查询提供了一种强大且易于理解的语法。对于习惯在 C# 中使用 LINQ 的开发人员来说,LINQ 查询提供了一种熟悉的查询语法,便于与其他 .NET 组件顺利集成。

HtmlAgilityPack 入门

在 C# 项目中设置 HtmlAgilityPack

HtmlAgility 基类库以单个捆绑包的形式提供,安装后可在 Nuget 中使用,并可在 C# 项目中使用。它提供 HTML 解析器和来自 HTML 文档和 HTML URL 的 CSS 选择器。

在 Windows 控制台和窗体中实施 HtmlAgilityPack

许多 C# 应用程序类型,如 Windows 窗体 (WinForms) 和 Windows 控制台实现 HtmlAgilityPack。虽然不同框架的实现方式各不相同,但基本思想是不变的。

Html Agility Pack C#(开发人员如何使用):图 1 - 使用 NuGet 软件包管理器搜索 HtmlAgilityPack 并安装

HtmlAgilityPack c# 示例

在 C# 开发人员的工具箱中,用于导航、处理和处理 HTML 文档的最重要工具之一就是 HTML Agility Pack (HAP)..NET Framework 的用户友好 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();
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 - 通过检索产品-主页-页眉类的内部文本提取的文本

HtmlAgilityPack 操作

HTML 转换

开发人员可以使用 HTML Agility Pack 对 HTML 文本执行多种转换和操作。这包括添加、删除或更改文本节点、元素和属性,以及重组 HTML 文档的 DOM 层次结构等操作。

可扩展性

由于 HAP 具有可扩展性,因此程序员可以添加新的功能和行为来增加其功能。开发人员可以使用所提供的应用程序接口设计自己的 HTML 解析器、过滤器或操纵器,根据自己的独特需求和使用情况定制 HAP。

性能和效率

HTML Agility Pack 的算法和数据结构可以很好地处理大型 HTML 文本,并对速度和效率进行了调整。它通过降低内存使用率和处理开销,确保快速、灵敏地解析和处理 HTML 内容。

将 HtmlAgilityPack 与 IronPdf 集成

将 IronPDF 与 HtmlAgilityPack 结合使用

使用 HTML Agility Pack 和 IronPDF,文档管理和报告创建将变得无限可能。 IronPDF 结合起来。通过使用 HTML Agility Pack 进行 HTML 解析和 IronPDF 利用 PDF 转换软件,开发人员可以毫不费力地从动态在线材料中自动创建 PDF 文档。要了解更多有关 IronPDF 文件,请参阅 这里.

安装 IronPDF

  • 启动 Visual Studio 项目。
  • 选择 "工具">"NuGet 包管理器">"包管理器控制台"。

  • 在软件包管理器控制台中输入此命令:
Install-Package IronPdf
  • 作为替代方法,您可以使用 NuGet Package Manager for Solutions 来安装 IronPDF。
  • 可以浏览和选择 IronPDF 软件包的搜索结果,然后点击 "安装 "按钮。Visual Studio 将为您完成安装和下载。

    Html 敏捷包 C# (如何为开发人员服务):图 3 - 在 NuGet Package Manager 的搜索栏中搜索 IronPdf,使用 Manage NuGet Package for Solution 安装 IronPDF,然后选择项目并点击安装按钮。

  • IronPDF 软件包和项目所需的任何依赖项都将由 NuGet 安装。
  • 安装完成后,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 内容:要从文件、字符串或 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;        
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 敏捷包 C# (如何为开发人员服务):图 4 - IronPDF 主页

执行结果如下:

上述代码的输出示例

结论

无论是解析 HTML 数据还是创建 PDF 报告,开发人员都可以轻松管理和更改文档材料,这要归功于 HTML Agility Pack 与 IronPDF 在 C# 中的平滑集成。通过将 IronPDF 的 PDF 制作功能与 HTML Agility Pack 的解析功能相结合,开发人员可以轻松、精确地自动执行与文档相关的操作。这两个库的结合提供了一个强大的 C# 文档管理解决方案,无论您是创建动态报表还是从网页中提取数据。

一个永久许可证、一年的软件维护和一个库升级都包含在"$liteLicense "精简版捆绑包中。IronPDF 提供免费许可,但有时间和再分发限制。在试用期内,用户可以在看不到水印的情况下对解决方案进行评估。请访问 IronPDF 的许可证页面以 学习 有关成本和许可证的更多信息。要了解有关 Iron 软件库的更多信息,请访问以下链接 页码.

< 前一页
docfx C#(开发人员工作原理)
下一步 >
C# Continue(开发人员如何使用)

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 10,731,156 查看许可证 >