.NET-HILFE

Html Agility Pack C# (Wie es für Entwickler funktioniert)

Veröffentlicht 4. Juni 2024
Teilen Sie:

Einführung

Die Notwendigkeit der dynamischen Verwaltung und Bearbeitung von Dokumenteninhalten ist in der Welt der C#-Entwicklung weit verbreitet. Entwickler verlassen sich in der Regel auf robuste Bibliotheken, um Aktivitäten wie die Erstellung von PDF-Berichten und die Extraktion von Daten aus Webseiten zu automatisieren. Dieser Artikel untersucht die einfache Integration von IronPDF und HTML Agility Pack in C# und zeigt anhand von Codebeispielen, wie diese Bibliotheken verwendet werden können, um mühelos PDF-Dokumente zu erstellen und HTML-Text zu lesen.

IronPDF hingegen ist eine funktionsreiche .NET-Bibliothek für die Arbeit mit PDF-Dateien. IronPDF ermöglicht Entwicklern die dynamische Generierung von PDF-Dateien aus HTML-Inhalten, URLs oder Rohdaten und ist damit ein wertvolles Werkzeug für die Erstellung von Dokumenten, Berichten und Datenvisualisierung.

Um die Dokumentenerzeugung in .NET-Anwendungen zu rationalisieren, werden wir in diesem Beitrag untersuchen, wie IronPDF mit HtmlAgilityPack verbunden werden kann. Die Kombination dieser Technologien ermöglicht es Programmierern, mit entfernten Systemen zu arbeiten, dynamische PDF-Seiten zu generieren und Daten über Netzwerkverbindungen abzurufen, während sie gleichzeitig die Produktivität und Skalierbarkeit ihrer Programme erhöhen.

Wie verwendet man HtmlAgilityPack in C#;

  1. Erstellen Sie ein neues C#-Projekt.

  2. Installieren Sie die Bibliothek HtmlAgilityPack.

  3. Importieren Sie den Namespace. Erstellen Sie ein Objekt.

  4. Importieren von Daten aus Url und Parsen des HTML.

  5. Holen Sie die erforderlichen Daten und entsorgen Sie das Objekt.

Einführung in HtmlAgilityPack

HTML-Beweglichkeitspaket ist eine vielseitige und leistungsstarke HTML-Parsing-Bibliothek für .NET-Entwickler. Mit Hilfe der umfangreichen Sammlung von APIs können Entwickler problemlos in HTML-Dokumenten navigieren, sie verändern und Daten aus ihnen extrahieren. HTML Agility Pack vereinfacht die Arbeit mit HTML-Inhalten für alle Entwickler, unabhängig von ihrer Erfahrung.

Die Fähigkeit von HTML Agility Pack, schlecht organisiertes oder fehlerhaftes HTML sanft zu verwalten, ist das, was es einzigartig macht. Es eignet sich perfekt für Online-Scraping-Operationen, bei denen die Qualität der HTML-Auszeichnung variieren kann, da es einen fehlerverzeihenden Parsing-Algorithmus verwendet, der selbst das am schlechtesten konstruierte HTML parsen kann.

Merkmale von HtmlAgilityPack

HTML-Parsing

Mit den leistungsstarken HTML-Parsing-Funktionen von HTML Agility Pack können Entwickler HTML-Dokumente aus einer Vielzahl von Quellen laden, darunter Dateien, URLs und Strings. Aufgrund seines nachsichtigen Parsing-Ansatzes kann es auch mit schlecht formatiertem oder fehlerhaftem HTML umgehen und eignet sich daher für Web-Scraping-Aktivitäten, bei denen die Qualität des HTML-Markups variieren kann.

DOM-Manipulation

Zum Erkunden, Durchsuchen und Arbeiten mit dem HTML Document Object Model (DOM) struktur bietet HAP eine benutzerfreundliche API. HTML-Elemente, Attribute und Textknoten können von Entwicklern programmatisch hinzugefügt, entfernt oder geändert werden, was eine dynamische Bearbeitung von HTML-Inhalten ermöglicht.

XPath- und LINQ-Unterstützung

Für die Auswahl und Abfrage von HTML-Komponenten unterstützt das HTML Agility Pack LINQ (Sprache Integrierte Abfrage) sowie die XPath-Syntax-Suche. Um Elemente in einem HTML-Dokument nach ihren Attributen, Tags oder ihrer Hierarchie auszuwählen, bieten XPath-Ausdrucksabfragen eine starke und leicht verständliche Syntax. Für Entwickler, die an die Arbeit mit LINQ in C# gewöhnt sind, bieten LINQ-Abfragen eine vertraute Abfragesyntax, die eine reibungslose Integration mit anderen .NET-Komponenten ermöglicht.

Erste Schritte mit HtmlAgilityPack

Einrichten von HtmlAgilityPack in C#-Projekten

Die HtmlAgility Base Class Library wird in einem einzigen gebündelten Paket geliefert, das durch Installation in Nuget verfügbar sein sollte und im C#-Projekt verwendet werden kann. Es bietet einen HTML-Parser und CSS-Selektoren aus dem HTML-Dokument und HTML-URLs.

Implementierung von HtmlAgilityPack in der Windows-Konsole und in Formularen

Viele C#-Anwendungstypen, wie z. B. Windows Forms (WinForms) und Windows-Konsole, implementieren HtmlAgilityPack. Obwohl die Umsetzung von Rahmen zu Rahmen variiert, bleibt der Grundgedanke konstant.

Html Agility Pack C# (Wie es für Entwickler funktioniert): Abbildung 1 - Suchen Sie mit dem NuGet Package Manager nach HtmlAgilityPack und installieren Sie es

HtmlAgilityPack c# Beispiel

Eines der wichtigsten Werkzeuge im Werkzeugkasten eines C#-Entwicklers für die Navigation, Verarbeitung und Arbeit mit HTML-Dokumenten ist das HTML Agility Pack (HAP). Die Datenextraktion aus HTML-Seiten wird durch die benutzerfreundliche API erleichtert, die wie ein organisierter Baum von Elementen funktioniert. Lassen Sie uns anhand eines einfachen Codebeispiels zeigen, wie man es verwendet.

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#

In diesem Beispiel laden wir HTML-Knotenmaterial von einer URL mit dem HTML Agility Pack. Der HTML-Code wird dann zum Parsen und zur Bearbeitung in den var doc geladen. Um Inhalte zu extrahieren, identifiziert das Programm zunächst den Wurzelknoten des HTML-Dokuments und zielt dann mit XPath-Abfragen gezielt auf Knoten innerhalb des Dokuments. Im obigen Code wählen wir gezielt div-Elemente mit der Klasse product-homepage-header aus den HTML-Daten aus, und dann wird der innere Text jedes ausgewählten Knotens auf der Konsole ausgegeben.

Html Agility Pack C# (Wie es für Entwickler funktioniert): Abbildung 2 - Extrahierter Text aus der Abfrage des inneren Textes der Klasse product-homepage-header

HtmlAgilityPack Vorgänge

HTML-Umwandlung

Mit dem HTML Agility Pack können Entwickler verschiedene Transformationen und Manipulationen an HTML-Texten vornehmen. Dies umfasst Vorgänge wie das Hinzufügen, Löschen oder Ändern von Textknoten, Elementen und Attributen sowie die Umstrukturierung der DOM-Hierarchie des HTML-Dokuments.

Erweiterbarkeit

Da HAP erweiterbar sein soll, können Programmierer neue Funktionen und Verhaltensweisen hinzufügen, um die Funktionalität zu erhöhen. Mithilfe der mitgelieferten API können Entwickler ihre eigenen HTML-Parser, Filter oder Manipulatoren entwerfen, um HAP an ihre individuellen Bedürfnisse und Anwendungsfälle anzupassen.

Leistung und Effizienz

Große HTML-Texte können von den Algorithmen und Datenstrukturen des HTML Agility Packs, das auf Geschwindigkeit und Effektivität getrimmt ist, gut verarbeitet werden. Sie gewährleistet eine schnelle und reaktionsschnelle Analyse und Bearbeitung von HTML-Inhalten, indem sie die Speichernutzung und den Verarbeitungs-Overhead reduziert.

Integration von HtmlAgilityPack in IronPDF

Verwendung von IronPDF mit HtmlAgilityPack

Die Möglichkeiten für Dokumentenmanagement und Berichterstellung sind endlos, wenn HTML Agility Pack und IronPDF kombiniert werden. Durch den Einsatz von HTML Agility Pack für HTML-Parsing und IronPDF für die PDF-Konvertierung können Entwickler mühelos die Erstellung von PDF-Dokumenten aus dynamischem Online-Material automatisieren. Um mehr über die IronPDF dokumentation, siehe hier.

IronPDF installieren

  • Starten Sie das Visual Studio-Projekt.
  • Wählen Sie "Werkzeuge" > "NuGet Package Manager" > "Package Manager Console".
  • Geben Sie diesen Befehl in die Paketmanager-Konsole ein:
Install-Package IronPdf
  • Alternativ können Sie auch den NuGet Package Manager for Solutions verwenden, um IronPDF zu installieren.
  • Die Suchergebnisse für das IronPDF-Paket können durchsucht und ausgewählt werden, und dann kann die Schaltfläche "Installieren" angeklickt werden. Visual Studio kümmert sich um die Installation und den Download für Sie.

    Html Agility Pack C# (Wie es für Entwickler funktioniert): Abbildung 3 - Installieren Sie IronPDF über die Funktion NuGet-Pakete für Lösungen verwalten, indem Sie in der Suchleiste des NuGet-Paketmanagers nach IronPdf suchen, dann das Projekt auswählen und auf die Schaltfläche Installieren klicken.

  • Das IronPDF-Paket und alle Abhängigkeiten, die Sie für Ihr Projekt benötigen, werden von NuGet installiert.
  • IronPDF kann nach der Installation für Ihr Projekt verwendet werden.

Installation über die NuGet-Website

Weitere Informationen zu den Funktionen, der Kompatibilität und anderen Download-Möglichkeiten von IronPDF finden Sie auf der Seite von IronPDF https://www.nuget.org/packages/IronPdf auf der NuGet-Website.

DLL zur Installation verwenden

Alternativ können Sie die DLL-Datei von IronPDF verwenden, um sie direkt in Ihr Projekt zu integrieren. Klicken Sie hier link um die ZIP-Datei zu erhalten, die die DLL enthält. Nach dem Entpacken binden Sie die DLL in Ihr Projekt ein.

Umsetzung der Logik

Durch die Integration der Funktionen beider Bibliotheken bietet das HTML Agility Pack (HAP) und IronPDF können in C# implementiert werden, um HTML-Informationen zu lesen und sofort PDF-Dokumente zu erzeugen. Die Schritte für die Implementierung sind unten aufgeführt, zusammen mit einem Beispielcode, der jeden Schritt durchläuft:

  1. Laden von HTML-Inhalten mit dem HTML Agility Pack: Um HTML-Material aus einer Quelle wie einer Datei, einem String oder einer URL zu laden, verwenden Sie das HTML Agility Pack. In dieser Phase wird das HTML-Dokument geparst und ein manipulierbares HTML-Dokumentobjekt erstellt.

  2. Extrahieren gewünschter Inhalte: Um bestimmte Inhalte aus dem HTML-Dokument auszuwählen und zu extrahieren, verwenden Sie das HTML Agility Pack in Verbindung mit XPath- oder LINQ-Abfragen. Dies könnte bedeuten, dass Elemente nach ihren Eigenschaften, Tags oder ihrer hierarchischen Struktur ausgewählt werden.

  3. Konvertieren Sie HTML in PDF mit IronPDF: Um aus dem abgerufenen HTML-Inhalt ein PDF-Dokument zu erstellen, verwenden Sie IronPDF. IronPDF konvertiert HTML-Material mühelos in das PDF-Format und behält dabei Stil und Layout bei.

  4. Optional: PDF-Ausgabe anpassen: Mit IronPDF können Sie Kopf- und Fußzeilen, Seitennummerierungen und andere dynamische Komponenten hinzufügen, um die PDF-Ausgabe nach Bedarf anzupassen. Dieser Schritt verbessert das Aussehen und die Benutzerfreundlichkeit des resultierenden PDF-Dokuments.

  5. PDF-Dokument speichern oder streamen: Das erstellte PDF-Dokument kann direkt an den Client oder Browser zum Herunterladen gestreamt oder in einer Datei gespeichert werden. IronPDF bietet Möglichkeiten zum Speichern von PDF-Dateien in verschiedenen Ausgabeströmen.
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#

Besuchen Sie hier um mehr über das Codebeispiel zu erfahren.

Html Agility Pack C# (Wie es für Entwickler funktioniert): Abbildung 4 - IronPDF-Homepage

Das Ergebnis der Ausführung ist unten dargestellt:

Beispielhafte Ausgabe des obigen Codes

Schlussfolgerung

Ob beim Parsen von HTML-Daten oder beim Erstellen von PDF-Berichten - dank der nahtlosen Integration von HTML Agility Pack und IronPDF in C# können Entwickler das Dokumentenmaterial mühelos verwalten und ändern. Durch die Kombination der PDF-Produktionsfunktionen von IronPDF mit den Parsing-Funktionen von HTML Agility Pack können Entwickler einfach und präzise Vorgänge im Zusammenhang mit Dokumenten automatisieren. Die Kombination dieser beiden Bibliotheken bietet eine leistungsstarke C#-Dokumentenmanagementlösung, unabhängig davon, ob Sie dynamische Berichte erstellen oder Daten aus Webseiten abrufen.

Eine unbefristete Lizenz, ein Jahr Software-Wartung und ein Bibliotheks-Upgrade sind im "Lite-Lizenz"-Paket enthalten. IronPDF bietet eine kostenlose Lizenzierung mit zeitlichen und Weiterverbreitungsbeschränkungen. Während des Testzeitraums können die Nutzer die Lösung testen, ohne ein Wasserzeichen zu sehen. Bitte gehen Sie auf die IronPDF-Lizenzseite, um lernen mehr über die Kosten und die Lizenz. Weitere Informationen über Iron Software-Bibliotheken finden Sie hier seite.

< PREVIOUS
docfx C# (Wie es für Entwickler funktioniert)
NÄCHSTES >
C# Continue (Wie es für Entwickler funktioniert)

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >