Mengekstrak Data Tabel HTML dengan .NET API

Aspose.HTML for .NET memuat file ke HTMLDocument agar aplikasi C# dapat mengkueri DOM dan mengekstrak data tabel terstruktur. Pilih elemen <table>, iterasikan baris, baca sel <th> dan <td>, lalu teruskan nilainya ke JSON, CSV, database, atau alur aplikasi lain.


Mengekstrak Tabel HTML ke JSON di C#

Contoh berikut memilih tabel pertama di input.html, mempertahankan urutan sel header dan data, lalu menulis nilainya ke table-data.json. Gunakan selector yang lebih spesifik jika terdapat beberapa tabel.

Kode C# untuk Mengekstrak Data Tabel HTML

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);

Langkah Mengekstrak Data dari Tabel HTML

  1. Muat file sumber dengan konstruktor HTMLDocument .
  2. Pilih tabel dengan QuerySelector() . Selector ID atau class lebih aman daripada table jika ada beberapa tabel.
  3. Gunakan QuerySelectorAll() untuk memperoleh baris, lalu sel <th> dan <td>.
  4. Baca dan normalkan TextContent setiap sel sambil mempertahankan urutan baris dan kolom.
  5. Serialisasikan nilai dengan JsonSerializer dan simpan file JSON.

Opsi dan Batasan Ekstraksi Data Tabel

  • Pilih tabel yang benar. Gunakan #id, .class, main table, atau selector CSS stabil lainnya. Lihat CSS Selector dan XPath Query .
  • Proses satu atau banyak tabel. Ganti QuerySelector() dengan QuerySelectorAll("table") untuk mengekstrak semua tabel.
  • Kontrol cakupan baris. Selector tr membaca baris dari <thead>, <tbody>, dan <tfoot>. Persempit selector jika bagian tertentu harus dipisahkan.
  • Perhitungkan tabel bertingkat. Selector turunan juga dapat menjangkau baris tabel bertingkat. Gunakan selector yang terkait dengan struktur target.
  • Pilih format tujuan. DOM API memberikan nilai; serializer dan API file .NET dapat menulis JSON, CSV, teks, atau record aplikasi.

Dokumentasi Ekstraksi Data Tabel HTML

Panduan Mengekstrak Tabel HTML di C# mencakup file lokal, URL, header, tautan, serta output CSV dan teks. Bagian Data Extraction juga membahas DOM, selector CSS, dan XPath.


Instal Aspose.HTML for .NET

Instal Aspose.HTML for .NET dari NuGet menggunakan .NET CLI:

dotnet add package Aspose.HTML

Anda juga dapat menggunakan antarmuka NuGet Package Manager atau menjalankan Install-Package Aspose.HTML di Package Manager Console. Lihat panduan instalasi untuk detail penyiapan, atau minta lisensi sementara untuk mengevaluasi API tanpa batasan evaluasi.


Tanya Jawab tentang Ekstraksi Data Tabel HTML

1. Bagaimana cara menyertakan header tabel dalam data yang diekstrak?

Baca elemen <th> dan <td> pada setiap baris. Selector th, td mempertahankan nilai header pada posisi aslinya dalam hasil JSON.

2. Apakah sel kosong dipertahankan dalam hasil JSON?

Ya. Setiap sel menghasilkan satu string dan sel kosong menjadi string kosong setelah TextContent.Trim(), sehingga posisinya tetap terjaga.

3. Dapatkah data disimpan sebagai CSV atau Excel?

Alur DOM mengembalikan nilai tanpa menentukan format. Tulis sebagai CSV dengan API .NET, serialisasikan sebagai JSON, atau teruskan ke komponen spreadsheet untuk membuat workbook Excel.

4. Apakah kode otomatis mengembangkan rowspan dan colspan?

Tidak. Atribut tetap tersedia, tetapi daftar datar tidak mewakili posisi grid yang ditempati. Tambahkan normalisasi untuk menghasilkan dataset persegi panjang.

5. Dapatkah saya mengekstrak tautan atau markup HTML, bukan teks biasa?

Ya. TextContent hanya mengembalikan teks. Gunakan InnerHTML untuk markup atau pilih elemen <a> dan baca teks serta atribut href.

Alur Kerja Tabel HTML Terkait

Buat atau edit tabel dan ekstrak tabel beserta markup-nya dengan panduan Aspose.HTML for .NET.