AIDE .NET

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

Introduction

La nécessité de gérer et de manipuler dynamiquement le contenu des documents est très répandue dans le monde du développement C#. Les développeurs s'appuient généralement sur des bibliothèques robustes pour automatiser des activités telles que la création de rapports PDF et l'extraction de données à partir de pages web. Cet article explore l'intégration directe d'IronPDF et de 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 sans effort des documents PDF et lire du texte HTML.

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

Pour rationaliser la génération de documents dans les applications .NET, nous verrons dans ce billet comment connecter IronPDF avec HTML Agility Pack. 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 via la connectivité réseau, tout en augmentant la productivité et l'évolutivité de leurs programmes.

Comment utiliser HtmlAgilityPack dans C# ;

  1. Créer un nouveau projet C#.

  2. Installer la bibliothèque HtmlAgilityPack.

  3. Importer l'espace de noms. Créer un objet.

  4. Importer des données à partir d'une URL et analyser le code HTML.

  5. Obtenir les données requises et se débarrasser de l'objet.

Introduction à HtmlAgilityPack

HTML Agility Pack est une bibliothèque d'analyse HTML polyvalente et puissante pour les développeurs .NET. Grâce à sa vaste collection d'API, les développeurs peuvent facilement naviguer, modifier et extraire des données de documents HTML. HTML Agility Pack permet à tous les développeurs, quel que soit leur niveau d'expérience, de travailler plus facilement avec le contenu HTML par le biais de programmes.

La capacité de HTML Agility Pack à gérer en douceur le 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 compréhensif qui peut analyser même le HTML le plus mal construit.

Caractéristiques de HtmlAgilityPack

Analyse HTML

Grâce aux puissantes fonctions d'analyse HTML offertes par HTML Agility Pack, les développeurs peuvent charger des documents HTML à partir de diverses sources, notamment des fichiers, des URL et des chaînes de caractères. Grâce à son approche indulgente de l'analyse syntaxique, il peut traiter avec élégance les formats HTML incorrects ou mal formatés, ce qui le rend adapté aux activités de "web scraping" où la qualité du balisage HTML peut varier.

Manipulation du DOM

Pour explorer, parcourir et travailler avec la structure du modèle d'objet de document HTML (DOM), 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, ce qui permet une manipulation dynamique du contenu HTML.

Support XPath et LINQ

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

Premiers pas avec HtmlAgilityPack

Configurer HtmlAgilityPack dans les projets C

La bibliothèque de classes de base HtmlAgility se présente sous la forme d'un paquetage unique, qui devrait être disponible dans NuGet en l'installant et qui peut être utilisé dans le projet C#. Il propose un analyseur HTML et des sélecteurs CSS à partir du document HTML et des URL HTML.

Mise en œuvre 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 la mise en œuvre varie d'un cadre à l'autre, l'idée fondamentale reste constante.

Html Agility Pack C# (Comment ça 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 organisé d'éléments. Examinons un exemple de code simple pour 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 du matériel de nœuds HTML à partir d'une URL à l'aide de HTML Agility Pack. L'HTML est ensuite chargé dans le var doc pour être analysé et manipulé. Pour extraire le 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é sur la console.

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

Opérations HtmlAgilityPack

Transformation HTML

Les développeurs peuvent effectuer plusieurs transformations et manipulations de textes HTML à l'aide du 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, ainsi que la réorganisation de la hiérarchie DOM du document HTML.

Extensibilité

HAP étant conçu pour être extensible, les programmeurs peuvent ajouter de nouvelles caractéristiques et de nouveaux comportements afin d'accroître sa fonctionnalité. En utilisant l'API fournie, les développeurs peuvent concevoir leurs propres analyseurs HTML, filtres ou manipulateurs pour adapter HAP à leurs besoins et cas d'utilisation uniques.

Performance et efficacité

Les algorithmes et les structures de données de HTML Agility Pack, conçus pour la vitesse et l'efficacité, permettent de traiter efficacement les textes HTML volumineux. Il garantit une analyse et une manipulation rapides et réactives du contenu HTML en réduisant l'utilisation de la mémoire et les frais généraux de traitement.

Intégration de HtmlAgilityPack avec IronPDF

Utilisation d'IronPDF avec HtmlAgilityPack

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

Installer IronPDF

  • Lancez le projet Visual Studio.
  • Sélectionnez "Outils" > "NuGet Package Manager" > "Console du gestionnaire de paquets".
  • Saisissez cette commande dans la console du gestionnaire de paquets :
Install-Package IronPdf
  • Vous pouvez également utiliser NuGet Package Manager for Solutions pour installer IronPDF.
  • Les résultats de la recherche du paquet IronPDF peuvent être parcourus et 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 en utilisant la gestion des 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 paquetage IronPDF et toutes les dépendances nécessaires à votre projet seront installés par NuGet.
  • IronPDF peut être utilisé pour votre projet après l'installation.

Installation via le site Web de NuGet

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

Utiliser la DLL pour l'installation

Vous pouvez également utiliser le fichier DLL d'IronPDF pour l'intégrer directement dans votre projet. Cliquez sur ce téléchargement du DLL IronPDF pour obtenir le fichier ZIP contenant le DLL. Après avoir décompressé le fichier, incorporez la DLL dans votre projet.

Mise en œuvre 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 les informations HTML et produire des documents PDF à la volée. Les étapes de la mise en œuvre sont énumérées ci-dessous, accompagnées d'un exemple de code qui décrit chacune d'entre 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 le HTML Agility Pack. Dans cette phase, le document HTML est analysé et un objet document HTML manipulable est créé.

  2. Extraire le contenu souhaité : Pour choisir et extraire du contenu spécifique du document HTML, utilisez le HTML Agility Pack en conjonction avec des requêtes XPath ou LINQ. Il peut s'agir de choisir des éléments en fonction de leurs propriétés, de leurs balises ou de leur structure hiérarchique.

  3. Convertir HTML en PDF à l'aide de IronPDF : Pour créer un document PDF à partir du contenu HTML récupéré, utilisez IronPDF. IronPDF convertit facilement des documents HTML au format PDF tout en conservant le style et la mise en page.

  4. Optionnel : Personnaliser la sortie PDF : Utilisez IronPDF pour ajouter des en-têtes, des pieds de page, une numérotation des pages et d'autres composants dynamiques pour personnaliser la sortie PDF selon vos besoins. Cette étape permet d'améliorer l'apparence et la convivialité du document PDF résultant.

  5. Enregistrer ou diffuser un document PDF : Le document PDF créé peut être diffusé directement au client ou au navigateur pour téléchargement, ou il peut être enregistré dans un fichier. IronPDF offre des moyens d'enregistrer des fichiers PDF vers différents flux de sortie.
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()
$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 présenté 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 facilement les documents grâce à l'intégration harmonieuse de HTML Agility Pack et d'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 de PDF d'IronPDF avec les capacités d'analyse de HTML Agility Pack. La combinaison de ces deux bibliothèques constitue une solution solide de gestion de documents en C#, qu'il s'agisse de créer des rapports dynamiques ou d'extraire des données de pages web.

Un abonnement perpétuel, une année de maintenance logicielle et une mise à niveau de la bibliothèque sont tous inclus dans le pack Lite $749. IronPDF fournit des licences gratuites avec des limitations temporelles et de redistribution. Pendant la période d'essai, les utilisateurs peuvent évaluer la solution sans voir de filigrane. Veuillez visiter la page Licensing Information d'IronPDF pour en savoir plus sur le coût et la licence. Pour en savoir plus sur les bibliothèques de Iron Software, visitez leur Page d'Information sur les Produits.

Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.
< PRÉCÉDENT
docfx C# (Comment ça marche pour les développeurs)
SUIVANT >
C# Continue (Comment ça marche pour les développeurs)