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

  1. Cargue el archivo de origen con un constructor de HTMLDocument .
  2. Seleccione las tablas con QuerySelectorAll("table") .
  3. Recorra los elementos devueltos y lea el OuterHTML de cada tabla.
  4. Cree un HTMLDocument a partir del marcado extraído y del URI base del documento de origen.
  5. Llame a Save() con un nombre de salida único para cada tabla.

Opciones y limitaciones al extraer tablas HTML

  • Elegir el alcance. Utilice table para todas las tablas o un selector más específico como #price-table, .results table o main table.
  • Conservar el marcado. OuterHTML incluye el elemento <table>, sus atributos, filas, celdas y contenido anidado.
  • Mantener el contexto de recursos. Pasar document.BaseURI permite 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 style permanecen 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.