AIDE .NET

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

Publié juin 4, 2024
Partager:

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

Pack Agilité HTML 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, naviguer et travailler avec le modèle d'objet de document HTML(DOM) hAP offre 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 le choix et l'interrogation des composants HTML, HTML Agility Pack prend en charge LINQ(Langue Requête intégrée) 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

Mise en place de 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 les Windows Forms(WinForms) et la console Windows, mettre en œuvre 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 marche pour les développeurs) : Figure 1 - Recherchez HtmlAgilityPack à l'aide du gestionnaire de paquets NuGet et installez-le

Exemple C# de HtmlAgilityPack

L'un des outils les plus importants de 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()
VB   C#

Dans cet exemple, nous chargeons du matériel de nœuds HTML à partir d'une URL à l'aide de HTML Agility Pack. Le HTML est ensuite chargé dans la 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. Dans le code ci-dessus, nous sélectionnons spécifiquement les éléments div de la classe product-homepage-header dans la chaîne de données HTML, puis le texte intérieur de chaque nœud sélectionné est imprimé dans la console.

Html Agility Pack C#(Comment cela fonctionne-t-il 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 des documents et de création de rapports sont infinies lorsque les logiciels HTML Agility Pack etIronPDF pour la conversion PDF sont combinés. Grâce à l'utilisation de HTML Agility Pack pour l'analyse syntaxique du HTML et de laDocumentation IronPDF pour la conversion PDF, les développeurs peuvent automatiser sans effort la création de documents PDF à partir de matériel dynamique en ligne.

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-t-il pour les développeurs ?) : Figure 3 - Installez IronPDF à l'aide de Manage NuGet Package for Solution en recherchant IronPdf dans la barre de recherche de NuGet Package Manager, 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 les autres choix de téléchargement d'IronPDF, consultez son site webInformations sur le paquet NuGet IronPDF sur le site web de 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 iciIronPDF DLL Télécharger pour obtenir le fichier ZIP contenant la 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 mis en œuvre en C# pour lire des 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 du contenu HTML à l'aide de 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 un contenu particulier 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 d'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. En option : Personnaliser la sortie PDF: Utilisez IronPDF pour ajouter des en-têtes, des pieds de page, la 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. Sauvegarder ou diffuser le document PDF : Le document PDF créé peut être transmis directement au client ou au navigateur pour être téléchargé, 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()
VB   C#

VisiterUtilisation d'IronPDF pour la conversion pour en savoir plus sur l'exemple de code.

Html Agility Pack C#(Comment ça marche pour les développeurs) : Figure 4 - Page d'accueil d'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.

Une licence perpétuelle, un an de maintenance du logiciel et une mise à jour de la bibliothèque sont inclus dans l'offre $749 Lite. 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 vous rendre sur le site d'IronPDF à l'adresse suivanteInformations sur les licences pour en savoir plus sur le coût et la licence. Pour en savoir plus sur les bibliothèques d'Iron Software, visitez leur site webPage d'information sur les produits.

< PRÉCÉDENT
docfx C# (Comment ça marche pour les développeurs)
SUIVANT >
C# Continue (Comment ça marche pour les développeurs)