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

  1. Laden Sie die Quelldatei mit einem HTMLDocument -Konstruktor.
  2. Wählen Sie die Tabellenelemente mit QuerySelectorAll("table") aus.
  3. Durchlaufen Sie die zurückgegebenen Elemente und lesen Sie das OuterHTML jeder Tabelle.
  4. Erstellen Sie aus dem extrahierten Markup und dem Basis-URI des Quelldokuments ein neues HTMLDocument.
  5. Rufen Sie Save() mit einem eindeutigen Ausgabedateinamen für jede extrahierte Tabelle auf.

Optionen und Grenzen der HTML-Tabellenextraktion

  • Extraktionsumfang bestimmen. Verwenden Sie table für alle Tabellen oder einen engeren Selektor wie #price-table, .results table oder main table, um das Ergebnis zu begrenzen.
  • Tabellen-Markup beibehalten. OuterHTML enthält das ausgewählte <table>-Element samt Attributen, Zeilen, Zellen und verschachtelten Inhalten.
  • Kontext für Ressourcen erhalten. Durch die Übergabe von document.BaseURI kö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.