HTML-Tabellendaten mit einer .NET-API auslesen
Aspose.HTML for .NET
lädt eine HTML-Datei in ein
HTMLDocument
, sodass eine C#-Anwendung das DOM abfragen und strukturierte Tabellendaten extrahieren kann. Wählen Sie das benötigte <table>-Element aus, durchlaufen Sie seine Zeilen, lesen Sie <th>- und <td>-Zellen und übergeben Sie die Werte an JSON, CSV, eine Datenbank oder einen anderen Anwendungsablauf.
HTML-Tabelle in C# als JSON extrahieren
Das folgende Beispiel wählt die erste Tabelle in input.html aus, behält die Reihenfolge der Überschriften- und Datenzellen bei und schreibt die Werte in table-data.json. Verwenden Sie einen genaueren Selektor, wenn das Dokument mehrere Tabellen enthält.
C#-Code zum Extrahieren von HTML-Tabellendaten
using Aspose.Html;
using Aspose.Html.Dom;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text.Json;
string inputPath = "input.html";
string outputPath = "table-data.json";
using HTMLDocument document = new HTMLDocument(inputPath);
// Select the table to extract
Element table = document.QuerySelector("table");
if (table == null)
{
throw new InvalidOperationException("The HTML document does not contain a table.");
}
List<List<string>> tableData = new List<List<string>>();
// Read header and data cells in document order
foreach (Element row in table.QuerySelectorAll("tr"))
{
List<string> values = new List<string>();
foreach (Element cell in row.QuerySelectorAll("th, td"))
{
values.Add(cell.TextContent.Trim());
}
if (values.Count > 0)
{
tableData.Add(values);
}
}
JsonSerializerOptions options = new JsonSerializerOptions
{
WriteIndented = true
};
string json = JsonSerializer.Serialize(tableData, options);
File.WriteAllText(outputPath, json);
Schritte zum Extrahieren von HTML-Tabellendaten
- Laden Sie die Quelldatei mit einem
HTMLDocument-Konstruktor. - Wählen Sie die benötigte Tabelle mit
QuerySelector()aus. Bei mehreren Tabellen ist ein ID- oder Klassenselektor sicherer alstable. - Erfassen Sie mit
QuerySelectorAll()die Tabellenzeilen und anschließend die<th>- und<td>-Zellen jeder Zeile. - Lesen und normalisieren Sie den
TextContentjeder Zelle unter Beibehaltung der ursprünglichen Zeilen- und Spaltenreihenfolge. - Serialisieren Sie die gesammelten Werte mit
JsonSerializerund speichern Sie die resultierende JSON-Datei.
Optionen und Grenzen der Tabellendatenextraktion
- Richtige Tabelle auswählen. Verwenden Sie
#id,.class,main tableoder einen anderen stabilen CSS-Selektor, statt grundsätzlich die erste Tabelle anzunehmen. Weitere Auswahlmuster finden Sie unter CSS-Selektor und XPath-Abfrage . - Eine oder mehrere Tabellen verarbeiten. Ersetzen Sie
QuerySelector()durchQuerySelectorAll("table"), wenn die Anwendung jede Tabelle im Dokument auslesen soll. - Zeilenbereich steuern. Der Selektor
trliest Zeilen aus<thead>,<tbody>und<tfoot>. Schränken Sie ihn ein, wenn die Ausgabe eine Fußzeile auslassen oder Tabellenbereiche getrennt verarbeiten soll. - Verschachtelte Tabellen berücksichtigen. Ein Nachfahrenselektor kann auch Zeilen innerhalb einer verschachtelten Tabelle erreichen. Verwenden Sie an die Zielstruktur gebundene Selektoren, wenn verschachtelte Tabellen separate Datensätze bilden sollen.
- Zielformat bestimmen. Die DOM-API liefert die extrahierten Werte. Standardmäßige .NET-Serializer und Datei-APIs können daraus JSON, CSV, Text oder anwendungsspezifische Datensätze erzeugen.
Dokumentation zur Extraktion von HTML-Tabellendaten
Die Anleitung HTML-Tabellen in C# extrahieren zeigt das Lesen lokaler Dateien und Webseiten-URLs, das Beibehalten von Überschriftenzellen, die Linkextraktion und die Ausgabe als CSV oder Text. Der Bereich Datenextraktion behandelt außerdem DOM-Navigation, CSS-Selektoren, XPath und weitere Arten von Webseiteninhalten.
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 zur Extraktion von HTML-Tabellendaten
1. Wie werden Tabellenüberschriften in die extrahierten Daten aufgenommen?
Lesen Sie in jeder Zeile sowohl <th>- als auch <td>-Elemente. Das Beispiel verwendet den Selektor th, td, sodass Überschriftenwerte an ihrer ursprünglichen Position erhalten bleiben und nicht im JSON-Ergebnis fehlen.
2. Bleiben leere HTML-Tabellenzellen im JSON-Ergebnis erhalten?
Ja. Jedes ausgewählte <th> oder <td> erzeugt einen Zeichenfolgenwert. Eine leere Zelle wird nach TextContent.Trim() zu einer leeren Zeichenfolge, wodurch ihre Position in der Zeile erhalten bleibt.
3. Kann ich die extrahierten Tabellendaten als CSV oder Excel speichern?
Der DOM-Ablauf liefert Zellwerte, ohne ein Ausgabeformat vorzugeben. Schreiben Sie sie mit standardmäßigen .NET-Datei-APIs als CSV, serialisieren Sie sie als JSON oder übergeben Sie sie an die Tabellenkalkulationskomponente Ihrer Anwendung, wenn eine Excel-Arbeitsmappe benötigt wird.
4. Erweitert der Extraktionscode rowspan und colspan automatisch?
Nein. Die Attribute bleiben an ihren Tabellenzellen verfügbar, doch eine flache Liste bildet belegte Rasterpositionen nicht ab. Ergänzen Sie eine Normalisierung, wenn verbundene Zellen zu einem rechteckigen Datensatz erweitert werden müssen.
5. Kann ich Links oder HTML-Markup statt Klartext aus Tabellenzellen extrahieren?
Ja. TextContent gibt nur den Zelltext zurück. Verwenden Sie InnerHTML, um verschachteltes Markup zu behalten, oder wählen Sie <a>-Elemente in jeder Zelle aus und lesen Sie deren Text und href-Attribute, wenn Linkziele benötigt werden.
Verwandte Abläufe für HTML-Tabellen
Erstellen oder bearbeiten Sie Tabellen und extrahieren Sie Tabellen samt Markup mit Anleitungen für Aspose.HTML for .NET.