Extrair Tabelas de Arquivos HTML com uma API .NET
Aspose.HTML for .NET
carrega um arquivo HTML em um
HTMLDocument
e expõe suas tabelas pelo DOM. Uma aplicação C# pode selecionar um ou todos os elementos <table>, ler seu OuterHTML e criar um documento HTML separado com a marcação completa de cada tabela.
Extrair Todas as Tabelas de um Arquivo HTML em C#
O exemplo seleciona todas as tabelas de input.html e salva cada uma em um arquivo HTML numerado. O URI base do documento de origem é passado a cada documento de saída para que URLs relativas de recursos possam ser resolvidas a partir do local original durante o processamento.
Código C# para Extrair Tabelas 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.");
}
Etapas para Extrair Tabelas de HTML
- Carregue o arquivo de origem com um construtor de
HTMLDocument. - Selecione os elementos de tabela com
QuerySelectorAll("table"). - Percorra os elementos retornados e leia o
OuterHTMLde cada tabela. - Crie um novo
HTMLDocumentcom a marcação extraída e o URI base do documento de origem. - Chame
Save()com um nome de arquivo exclusivo para cada tabela extraída.
Opções e Limitações da Extração de Tabelas HTML
- Escolha o escopo da extração. Use
tablepara selecionar todas as tabelas ou um seletor mais restrito, como#price-table,.results tableoumain table. - Preserve a marcação da tabela.
OuterHTMLinclui o elemento<table>selecionado, seus atributos, linhas, células e conteúdo aninhado. - Mantenha o contexto de resolução de recursos. Passar
document.BaseURIpermite interpretar URLs relativas da marcação extraída em relação ao documento de origem durante o processamento. - Trate os estilos separadamente. Estilos embutidos e atributos
styledentro da tabela permanecem na marcação. Regras no<head>do documento de origem ou em folhas de estilos externas não são copiadas para um documento que contém apenas a tabela. - Separe marcação de extração de dados. Este fluxo salva cada elemento
<table>selecionado com sua marcação. Para coletar valores de células para JSON, CSV ou outro formato, use Extrair Dados de Tabela HTML .
Documentação sobre Extração de Tabelas HTML
Consulte Extrair Tabelas HTML em C# para seleção de tabelas, processamento de linhas e células, extração de links e exemplos de saída. A seção Extração de Dados aborda outros fluxos com navegação DOM, seletores CSS, XPath e conteúdo web.
Instalar o Aspose.HTML for .NET
Instale o Aspose.HTML for .NET pelo NuGet usando a CLI do .NET:
dotnet add package Aspose.HTML
Você também pode usar a interface do Gerenciador de Pacotes NuGet ou executar Install-Package Aspose.HTML no Console do Gerenciador de Pacotes. Consulte o
guia de instalação
para configurar a biblioteca ou solicite uma
licença temporária
para avaliar a API sem limitações.
Perguntas Frequentes sobre Extração de Tabelas HTML
1. Posso extrair todas as tabelas de um único arquivo HTML?
Sim. QuerySelectorAll("table") retorna todas as tabelas correspondentes na ordem do documento. Percorra o resultado e atribua um nome de saída exclusivo quando cada tabela precisar ser salva separadamente.
2. Como extraio apenas uma tabela HTML específica?
Use QuerySelector() com um ID, uma classe ou um seletor estrutural estável, como #price-table ou main table. O método retorna a primeira correspondência em vez de coletar todos os elementos <table>.
3. Uma tabela HTML extraída mantém sua formatação CSS?
Estilos embutidos e atributos style da tabela são mantidos em OuterHTML. Regras CSS do <head> original ou de uma folha de estilos externa devem ser copiadas ou vinculadas separadamente para que o arquivo independente conserve a mesma aparência.
4. Posso extrair os dados para CSV ou JSON em vez de salvar a marcação HTML?
Sim, mas esse é outro fluxo. Percorra as linhas, leia os valores de <th> e <td> e envie-os a um gravador CSV ou serializador JSON. Consulte
Extrair Dados de Tabela HTML
para um exemplo completo.
5. As tabelas HTML aninhadas são extraídas separadamente?
Um seletor amplo table encontra tanto tabelas externas quanto aninhadas. Use um seletor mais específico quando as tabelas internas devam permanecer apenas no elemento pai e não ser gravadas também como arquivos separados.
Fluxos Relacionados para Tabelas HTML
Crie, edite ou extraia valores de tabelas com outros guias do Aspose.HTML for .NET.