Extraer tablas de archivos HTML con una API de .NET
Aspose.HTML for .NET
carga un archivo HTML en un
HTMLDocument
y expone sus tablas mediante el DOM. Una aplicación C# puede seleccionar uno o todos los elementos <table>, leer su OuterHTML y crear un documento HTML separado con el marcado completo de cada tabla.
Extraer todas las tablas de un archivo HTML en C#
El siguiente ejemplo selecciona todas las tablas de input.html y guarda cada una en un archivo HTML numerado. El URI base del documento de origen se pasa a cada salida para resolver las URL relativas de los recursos desde su ubicación original.
Código C# para extraer tablas HTML
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.");
}
Pasos para extraer tablas de HTML
- Cargue el archivo de origen con un constructor de
HTMLDocument. - Seleccione las tablas con
QuerySelectorAll("table"). - Recorra los elementos devueltos y lea el
OuterHTMLde cada tabla. - Cree un
HTMLDocumenta partir del marcado extraído y del URI base del documento de origen. - Llame a
Save()con un nombre de salida único para cada tabla.
Opciones y limitaciones al extraer tablas HTML
- Elegir el alcance. Utilice
tablepara todas las tablas o un selector más específico como#price-table,.results tableomain table. - Conservar el marcado.
OuterHTMLincluye el elemento<table>, sus atributos, filas, celdas y contenido anidado. - Mantener el contexto de recursos. Pasar
document.BaseURIpermite interpretar las URL relativas con respecto al documento de origen durante el procesamiento. - Tratar los estilos por separado. Los estilos en línea y atributos
stylepermanecen en el marcado. Las reglas del<head>o de hojas externas no se copian al documento que contiene solo la tabla. - Distinguir marcado y datos. Este flujo guarda cada elemento
<table>seleccionado junto con su marcado. Para obtener valores de celdas destinados a JSON o CSV, consulte Extraer datos de tablas HTML .
Documentación para extraer tablas HTML
La guía Extraer tablas HTML en C# trata la selección de tablas, el procesamiento de filas y celdas, la extracción de enlaces y distintos resultados. Extracción de datos incluye navegación DOM, selectores CSS, XPath y otros flujos de contenido web.
Instalar Aspose.HTML for .NET
Instale Aspose.HTML for .NET desde NuGet con la CLI de .NET:
dotnet add package Aspose.HTML
También puede usar la interfaz del Administrador de paquetes NuGet o ejecutar Install-Package Aspose.HTML en la consola del Administrador de paquetes. Consulte la
guía de instalación
para configurar la biblioteca o solicite una
licencia temporal
para evaluar la API sin limitaciones.
Preguntas frecuentes sobre la extracción de tablas HTML
1. ¿Puedo extraer todas las tablas de un archivo HTML?
Sí. QuerySelectorAll("table") devuelve todas las tablas coincidentes en el orden del documento. Recorra el resultado y asigne un nombre de salida único para guardar cada tabla por separado.
2. ¿Cómo extraigo una sola tabla HTML concreta?
Utilice QuerySelector() con un identificador, clase o selector estructural estable como [id="price-table"] o main table. Devuelve la primera coincidencia en lugar de recopilar todos los elementos <table>.
3. ¿Una tabla HTML extraída conserva el formato CSS?
Los estilos en línea y atributos style de la tabla permanecen en OuterHTML. Las reglas del <head> original o de una hoja externa deben copiarse o vincularse por separado para conservar el mismo aspecto.
4. ¿Puedo extraer datos a CSV o JSON en lugar de guardar marcado HTML?
Sí, pero es otro flujo. Recorra las filas, lea los valores de <th> y <td> y páselos a un escritor CSV o serializador JSON. Consulte
Extraer datos de tablas HTML
para ver un ejemplo completo.
5. ¿Las tablas HTML anidadas se extraen por separado?
El selector table coincide con tablas externas y anidadas. Utilice un selector más específico si una tabla anidada debe permanecer solo dentro de su tabla principal y no guardarse también como archivo independiente.
Operaciones relacionadas con tablas HTML
Cree y edite tablas o extraiga valores de celdas con guías de Aspose.HTML for .NET.