Tabellen aus HTML-Dateien mit einer .NET-API extrahieren
Aspose.HTML for .NET
lädt eine HTML-Datei in ein
HTMLDocument
und stellt ihre Tabellen über das DOM bereit. Eine C#-Anwendung kann ein oder alle <table>-Elemente auswählen, deren OuterHTML lesen und für jede vollständige Tabellenstruktur ein separates HTML-Dokument erstellen.
Alle Tabellen aus einer HTML-Datei in C# extrahieren
Das folgende Beispiel wählt jede Tabelle in input.html aus und speichert sie in einer nummerierten HTML-Datei. Der Basis-URI des Quelldokuments wird an jedes Ausgabedokument übergeben, damit relative Ressourcen-URLs bei der Verarbeitung von ihrem ursprünglichen Speicherort aus aufgelöst werden können.
C#-Code zum Extrahieren von HTML-Tabellen
using Aspose.Html;
using Aspose.Html.Dom;
using System;
// Load the source HTML file
using HTMLDocument document = new HTMLDocument("input.html");
int tableNumber = 1;
foreach (Element table in document.QuerySelectorAll("table"))
{
// Save each complete table to a separate HTML file
string outputPath = $"table-{tableNumber}.html";
using HTMLDocument tableDocument = new HTMLDocument(table.OuterHTML, document.BaseURI);
tableDocument.Save(outputPath);
tableNumber++;
}
if (tableNumber == 1)
{
// Report that the selector returned no tables
Console.WriteLine("No tables were found in the HTML document.");
}
Schritte zum Extrahieren von Tabellen aus HTML
- Laden Sie die Quelldatei mit einem
HTMLDocument-Konstruktor. - Wählen Sie die Tabellenelemente mit
QuerySelectorAll("table")aus. - Durchlaufen Sie die zurückgegebenen Elemente und lesen Sie das
OuterHTMLjeder Tabelle. - Erstellen Sie aus dem extrahierten Markup und dem Basis-URI des Quelldokuments ein neues
HTMLDocument. - Rufen Sie
Save()mit einem eindeutigen Ausgabedateinamen für jede extrahierte Tabelle auf.
Optionen und Grenzen der HTML-Tabellenextraktion
- Extraktionsumfang bestimmen. Verwenden Sie
tablefür alle Tabellen oder einen engeren Selektor wie#price-table,.results tableodermain table, um das Ergebnis zu begrenzen. - Tabellen-Markup beibehalten.
OuterHTMLenthält das ausgewählte<table>-Element samt Attributen, Zeilen, Zellen und verschachtelten Inhalten. - Kontext für Ressourcen erhalten. Durch die Übergabe von
document.BaseURIkönnen relative URLs im extrahierten Markup während der Verarbeitung auf das Quelldokument bezogen werden. - Stile getrennt behandeln. Inline-Stile und
style-Attribute innerhalb der Tabelle bleiben im Markup erhalten. Regeln aus dem<head>des Quelldokuments oder externen Stylesheets werden nicht in ein reines Tabellendokument kopiert. - Markup und Datenextraktion trennen. Dieser Ablauf speichert jedes ausgewählte
<table>-Element samt Markup. Zum Erfassen von Zellwerten für JSON, CSV oder ein anderes Format verwenden Sie HTML-Tabellendaten extrahieren .
Dokumentation zur Extraktion von HTML-Tabellen
Die Anleitung HTML-Tabellen in C# extrahieren behandelt Tabellenauswahl, Zeilen- und Zellverarbeitung, Linkextraktion sowie Ausgabebeispiele. Der Bereich Datenextraktion beschreibt weitere Abläufe für DOM-Navigation, CSS-Selektoren, XPath und das Extrahieren von Webinhalten.
Aspose.HTML for .NET installieren
Installieren Sie Aspose.HTML for .NET aus NuGet mit der .NET CLI:
dotnet add package Aspose.HTML
Alternativ können Sie die Benutzeroberfläche des NuGet-Paket-Managers verwenden oder Install-Package Aspose.HTML in der Paket-Manager-Konsole ausführen. Einzelheiten zur Einrichtung finden Sie in der
Installationsanleitung
. Mit einer
temporären Lizenz
können Sie die API ohne Einschränkungen der Evaluierung testen.
Häufige Fragen zum Extrahieren von HTML-Tabellen
1. Kann ich alle Tabellen aus einer HTML-Datei extrahieren?
Ja. QuerySelectorAll("table") gibt alle passenden Tabellen in Dokumentreihenfolge zurück. Durchlaufen Sie das Ergebnis und vergeben Sie eindeutige Ausgabedateinamen, wenn jede Tabelle getrennt gespeichert werden soll.
2. Wie extrahiere ich nur eine bestimmte HTML-Tabelle?
Verwenden Sie QuerySelector() mit einer stabilen ID, Klasse oder einem strukturellen Selektor wie [id="price-table"] oder main table. Die Methode gibt die erste passende Tabelle zurück, statt alle <table>-Elemente zu sammeln.
3. Behält eine extrahierte HTML-Tabelle ihre CSS-Formatierung?
Inline-Stile und style-Attribute innerhalb der Tabelle bleiben in OuterHTML erhalten. CSS-Regeln aus dem <head> des Quelldokuments oder einem externen Stylesheet müssen separat kopiert oder verknüpft werden, wenn die eigenständige Datei gleich aussehen soll.
4. Kann ich Tabellendaten als CSV oder JSON statt als HTML-Markup extrahieren?
Ja, dafür ist jedoch ein anderer Ablauf erforderlich. Durchlaufen Sie die Tabellenzeilen, lesen Sie die Werte aus <th> und <td> und übergeben Sie sie an einen CSV-Writer oder JSON-Serializer. Ein vollständiges Beispiel finden Sie unter
HTML-Tabellendaten extrahieren
.
5. Werden verschachtelte HTML-Tabellen separat extrahiert?
Ein allgemeiner table-Selektor erfasst sowohl äußere als auch verschachtelte Tabellen. Verwenden Sie einen genaueren Selektor, wenn verschachtelte Tabellen nur in ihrer Elterntabelle verbleiben und nicht zusätzlich als separate Dateien gespeichert werden sollen.
Verwandte Abläufe für HTML-Tabellen
Erstellen oder bearbeiten Sie Tabellen und extrahieren Sie Zellwerte mit Anleitungen für Aspose.HTML for .NET.