Passer au contenu du pied de page
.NET AIDE

Html Agility Pack C# (Comment ça fonctionne pour les développeurs)

La nécessité de gérer et de manipuler dynamiquement le contenu des documents est répandue dans le monde du développement C#. Les développeurs comptent souvent sur des bibliothèques robustes pour automatiser des activités comme la création de rapports PDF et l'extraction de données à partir de pages Web. Cet article explore l'intégration simple de IronPDF et HTML Agility Pack en C# et fournit des exemples de code pour démontrer comment ces bibliothèques peuvent être utilisées pour créer facilement des documents PDF et lire du texte HTML.

IronPDF est une bibliothèque .NET riche en fonctionnalités pour travailler avec des fichiers PDF. Comme IronPDF permet aux développeurs de générer dynamiquement des fichiers PDF à partir de contenu HTML, d'URL ou de données brutes, il sert d'outil précieux pour la création de documents, la création de rapports et la visualisation de données.

Pour simplifier la génération de documents dans les applications .NET, nous examinerons comment connecter IronPDF avec HTML Agility Pack dans cet article. La combinaison de ces technologies permet aux programmeurs de travailler avec des systèmes distants, de générer des pages PDF dynamiques et d'obtenir des données par connectivité réseau, tout en augmentant la productivité et l'évolutivité de leurs programmes.

Comment Utiliser HtmlAgilityPack en C#

  1. Créez un nouveau projet C#.
  2. Installez la bibliothèque HtmlAgilityPack.
  3. Importez le namespace. Créez un objet.
  4. Importez les données depuis l'URL et analysez le HTML.
  5. Récupérez les données nécessaires et supprimez l'objet.

Introduction à HtmlAgilityPack

HTML Agility Pack est une bibliothèque d'analyse HTML polyvalente et puissante pour les développeurs .NET. Avec l'aide de sa vaste collection d'API, les développeurs peuvent facilement naviguer, modifier et extraire des données à partir de documents HTML. HTML Agility Pack facilite le travail avec le contenu HTML de manière programmatique pour tous les développeurs, quel que soit leur niveau d'expérience.

La capacité de HTML Agility Pack à gérer en douceur du HTML mal organisé ou défectueux est ce qui le rend unique. Il est parfait pour les opérations de scraping en ligne où la qualité du balisage HTML peut varier, car il utilise un algorithme d'analyse tolérant qui peut analyser même le HTML le plus mal construit.

Caractéristiques de HtmlAgilityPack

Analyse HTML

Avec les puissantes fonctionnalités d'analyse HTML offertes par HTML Agility Pack, les développeurs peuvent charger des documents HTML à partir de diverses sources, y compris des fichiers, des URL et des chaînes. Grâce à son approche d'analyse indulgente, il peut gérer gracieusement le HTML mal formaté ou incorrect, ce qui le rend adapté aux activités de scraping Web où la qualité du balisage HTML peut varier.

Manipulation DOM

Pour explorer, naviguer et travailler avec la structure Document Object Model (DOM) HTML, HAP propose une API conviviale. Les éléments HTML, les attributs et les nœuds de texte peuvent tous être ajoutés, supprimés ou modifiés de manière programmatique par les développeurs, permettant une manipulation dynamique du contenu HTML.

Support XPath et LINQ

Pour le choix et l'interrogation des composants HTML, HTML Agility Pack prend en charge LINQ (Language Integrated Query) ainsi que les recherches en syntaxe XPath. Pour choisir des éléments dans un document HTML en fonction de leurs attributs, balises ou hiérarchie, les requêtes d'expressions XPath fournissent une syntaxe puissante et facile à comprendre. Pour les développeurs habitués à travailler avec LINQ en C#, les requêtes LINQ offrent une syntaxe de requête familière qui facilite une intégration fluide avec d'autres composants .NET.

Bien Commencer avec HtmlAgilityPack

Configuration de HtmlAgilityPack dans les Projets C

La bibliothèque de classes de base HtmlAgility est disponible en un seul paquet groupé, qui devrait être disponible dans NuGet en l'installant et peut être utilisé dans le projet C#. Elle offre un analyseur HTML et des sélecteurs CSS à partir du document HTML et des URL HTML.

Implémentation de HtmlAgilityPack dans la Console et les Formulaires Windows

De nombreux types d'applications C#, tels que Windows Forms (WinForms) et Windows Console, implémentent HtmlAgilityPack. Bien que l'implémentation varie d'un framework à l'autre, l'idée fondamentale reste constante.

Html Agility Pack C# (Comment cela fonctionne pour les développeurs) : Figure 1 - Recherchez HtmlAgilityPack en utilisant le gestionnaire de paquets NuGet et installez-le

Exemple HtmlAgilityPack C

L'un des outils les plus importants dans la boîte à outils du développeur C# pour naviguer, traiter et travailler avec des documents HTML est le HTML Agility Pack (HAP). L'extraction de données à partir de pages HTML est facilitée par son API conviviale, qui fonctionne comme un arbre structuré d'éléments. Examinons un exemple de code simple pour démontrer comment l'utiliser.

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

Dans cet exemple, nous chargeons le contenu des nœuds HTML à partir d'une URL à l'aide de HTML Agility Pack. Le HTML est ensuite chargé dans le var doc pour l'analyse et la manipulation. Pour extraire du contenu, le programme identifie d'abord le nœud racine du document HTML, puis cible spécifiquement les nœuds du document à l'aide de requêtes XPath. À partir du code ci-dessus, nous sélectionnons spécifiquement les éléments div avec la classe product-homepage-header à partir des données HTML sous forme de chaîne, puis le texte interne de chaque nœud sélectionné est imprimé dans la console.

Html Agility Pack C# (Comment cela fonctionne pour les développeurs) : Figure 2 - Texte extrait lors de la récupération du texte intérieur de la classe product-homepage-header

Opérations de HtmlAgilityPack

Transformation HTML

Les développeurs peuvent effectuer plusieurs transformations et manipulations sur des textes HTML à l'aide de HTML Agility Pack. Cela couvre des opérations telles que l'ajout, la suppression ou la modification de nœuds de texte, d'éléments et d'attributs en plus de réorganiser la hiérarchie DOM du document HTML.

Extensibilité

Comme HAP est conçu pour être extensible, les programmeurs peuvent ajouter de nouvelles fonctionnalités et comportements pour augmenter sa fonctionnalité. À l'aide de l'API fournie, les développeurs peuvent concevoir leurs propres analyseurs HTML, filtres ou manipulateurs pour personnaliser HAP en fonction de leurs besoins et cas d'utilisation uniques.

Performance et Efficacité

Les algorithmes et les structures de données de HTML Agility Pack, optimisés pour la vitesse et l'efficacité, peuvent bien gérer de grands textes HTML. Il assure l'analyse et la manipulation rapide et réactive du contenu HTML en réduisant l'utilisation de la mémoire et la surcharge de traitement.

Intégration de HtmlAgilityPack avec IronPdf

Utiliser IronPDF avec HtmlAgilityPack

Les possibilités de gestion de documents et de création de rapports sont infinies lorsque HTML Agility Pack et IronPDF pour la Conversion PDF sont combinés. Grâce à l'utilisation de HTML Agility Pack pour l'analyse HTML et la Documentation IronPDF pour la conversion PDF, les développeurs peuvent automatiser sans effort la création de documents PDF à partir de contenu en ligne dynamique.

Installer IronPDF

  • Lancez le projet Visual Studio.
  • Sélectionnez "Outils" > "Gestionnaire de paquets NuGet" > "Console du gestionnaire de paquets".
  • Entrez cette commande dans la console du gestionnaire de paquets :
Install-Package IronPdf
  • En guise d'alternative, vous pouvez utiliser le gestionnaire de paquets NuGet pour les Solutions pour installer IronPDF.
  • Les résultats de recherche du package IronPDF peuvent être parcourus, choisis, puis le bouton "Installer" peut être cliqué. Visual Studio se chargera de l'installation et du téléchargement pour vous.

Html Agility Pack C# (Comment cela fonctionne pour les développeurs) : Figure 3 - Installez IronPDF à l'aide du gestionnaire de packages NuGet pour la Solution en recherchant IronPdf dans la barre de recherche du gestionnaire de packages NuGet, puis sélectionnez le projet et cliquez sur le bouton Installer.

  • Le package IronPDF et toutes les dépendances nécessaires pour votre projet seront installés par NuGet.
  • IronPDF peut être utilisé pour votre projet après l'installation.

Installation via le site Web NuGet

Pour en savoir plus sur les fonctionnalités, la compatibilité et les autres options de téléchargement de IronPDF, consultez ses Informations sur le Package NuGet de IronPDF sur le site NuGet.

Utiliser DLL pour installer

En guise d'alternative, vous pouvez utiliser le fichier DLL de IronPDF pour l'intégrer directement dans votre projet. Cliquez sur ce téléchargement DLL de IronPDF pour obtenir le fichier ZIP contenant le DLL. Après avoir décompressé, incorporez le DLL dans votre projet.

Implémentation de la logique

En intégrant les fonctionnalités des deux bibliothèques, HTML Agility Pack (HAP) et IronPDF peuvent être implémentés en C# pour lire des informations HTML et produire des documents PDF à la volée. Les étapes pour l'implémentation sont énumérées ci-dessous, ainsi qu'un exemple de code qui parcourt chacune d'elles :

  1. Charger le Contenu HTML en utilisant HTML Agility Pack : Pour charger du matériel HTML à partir d'une source, telle qu'un fichier, une chaîne ou une URL, utilisez HTML Agility Pack. À cette étape, le document HTML est analysé et un objet de document HTML manipulable est créé.
  2. Extraire le Contenu Désiré : Pour choisir et extraire un contenu particulier du document HTML, utilisez HTML Agility Pack en conjonction avec des requêtes XPath ou LINQ. Cela pourrait impliquer de choisir des éléments selon leurs propriétés, leurs balises ou leur structure hiérarchique.
  3. Convertir HTML en PDF en utilisant IronPDF : Pour créer un document PDF à partir du contenu HTML récupéré, utilisez IronPDF. IronPDF convertit le matériel HTML en format PDF avec facilité tout en maintenant le style et la mise en page.
  4. Optionnel : Personnaliser la Sortie PDF : Utilisez IronPDF pour ajouter des en-têtes, pieds de page, numérotation des pages et d'autres composants dynamiques pour personnaliser la sortie PDF selon les besoins. Cette étape améliore l'apparence et l'utilisabilité du document PDF résultant.
  5. Enregistrer ou Diffuser le Document PDF : Le document PDF créé peut être diffusé directement vers le client ou le navigateur pour téléchargement, ou il peut être enregistré dans un fichier. IronPDF propose des moyens d'enregistrer des fichiers PDF dans différents flux de sortie.
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

Visitez Utiliser IronPDF pour la Conversion pour en savoir plus sur l'exemple de code.

Html Agility Pack C# (Comment cela fonctionne pour les développeurs) : Figure 4 - Page d'accueil IronPDF

Le résultat de l'exécution est indiqué ci-dessous :

Exemple de sortie du code ci-dessus

Conclusion

Qu'il s'agisse d'analyser des données HTML ou de créer des rapports PDF, les développeurs peuvent gérer et modifier le matériel des documents avec facilité grâce à l'intégration fluide de HTML Agility Pack et IronPDF en C#. Les développeurs peuvent facilement et précisément automatiser les opérations liées aux documents en combinant les fonctionnalités de production PDF de IronPDF avec les capacités d'analyse de HTML Agility Pack. La combinaison de ces deux bibliothèques offre une solution puissante de gestion de documents en C#, que vous construisiez des rapports dynamiques ou extrayiez des données à partir de pages Web.

Un abonnement à perpétuité, une année de maintenance logicielle et une mise à niveau de la bibliothèque sont tous inclus dans le package Lite $799. IronPDF propose une licence gratuite avec des limitations temporelles et de redistribution. Pendant la période d'essai, les utilisateurs peuvent évaluer la solution sans voir de filigrane. Veuillez consulter les informations de licence de IronPDF pour en savoir plus sur le coût et la licence.

En savoir plus sur les bibliothèques de Iron Software.

Questions Fréquemment Posées

Comment puis-je convertir HTML en PDF en C# ?

Vous pouvez utiliser la méthode RenderHtmlAsPdf d'IronPDF pour convertir des chaînes HTML en PDFs. Vous pouvez également convertir des fichiers HTML en PDFs en utilisant RenderHtmlFileAsPdf.

Quel est l'objectif d'utiliser HtmlAgilityPack dans les projets C#?

HtmlAgilityPack est utilisé dans les projets C# pour analyser et manipuler les documents HTML. Il peut gérer le HTML mal formaté, ce qui le rend idéal pour les tâches de scraping web et d'extraction de données.

Comment configurer HtmlAgilityPack dans une application C#?

Pour configurer HtmlAgilityPack, installez-le via le gestionnaire de packages NuGet dans Visual Studio. Après l'installation, vous pouvez importer les espaces de noms nécessaires et commencer à analyser le contenu HTML dans votre application.

IronPDF et HtmlAgilityPack peuvent-ils être utilisés ensemble pour la création de documents?

Oui, IronPDF et HtmlAgilityPack peuvent être combinés pour créer des documents PDF dynamiques à partir de contenu HTML. HtmlAgilityPack extrait et manipule les données HTML, qui peuvent ensuite être converties en PDF à l'aide d'IronPDF.

Quelles sont les principales fonctionnalités d'IronPDF pour les développeurs .NET?

IronPDF offre des fonctionnalités telles que la conversion de HTML en PDF, la fusion de PDF et l'ajout de texte ou d'images aux PDF. Il prend en charge un large éventail de fonctionnalités pour une gestion robuste des documents PDF dans les applications .NET.

Comment HtmlAgilityPack peut-il aider à extraire des données de pages web?

HtmlAgilityPack permet aux développeurs de charger des documents HTML et d'utiliser des requêtes XPath ou LINQ pour naviguer et extraire des données en fonction de nœuds ou d'attributs spécifiques, facilitant l'extraction de données web.

Quels sont les avantages d'intégrer une bibliothèque PDF avec HtmlAgilityPack?

L'intégration d'IronPDF avec HtmlAgilityPack améliore l'automatisation des documents en permettant la conversion de contenu HTML dynamique en rapports PDF, rationalisant la génération de documents dans les applications .NET.

Est-il possible d'utiliser IronPDF dans les applications console?

Oui, IronPDF peut être implémenté dans divers types d'applications C#, y compris les applications console Windows, permettant un traitement versatile des documents et la génération de PDF.

Quels types d'opérations HTML peuvent être effectuées avec HtmlAgilityPack?

HtmlAgilityPack prend en charge des opérations telles que l'ajout, la suppression ou la modification de nœuds et d'éléments HTML et la réorganisation de la structure DOM, ce qui en fait un outil polyvalent pour la manipulation de documents HTML.

IronPDF propose-t-il un essai gratuit pour les développeurs?

IronPDF propose une licence gratuite avec certaines limitations, permettant aux développeurs d'évaluer la bibliothèque sans filigrane pendant la période d'essai, offrant la possibilité de tester ses fonctionnalités avant l'achat.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite