Вилучення таблиць з HTML-файлів за допомогою .NET API

Aspose.HTML for .NET завантажує HTML-файл в HTMLDocument і надає доступ до таблиць через DOM. Застосунок C# може вибрати один або всі елементи <table>, прочитати їх OuterHTML і створити окремий HTML-документ із повною розміткою таблиці.


Вилучення всіх таблиць з HTML-файлу в C#

У наведеному нижче прикладі вибираються всі таблиці з input.html, а кожна з них зберігається в нумерований HTML-файл. Базовий URI вихідного документа передається кожному новому документу, щоб під час обробки відносні URL ресурсів можна було розв’язувати від початкового розташування.

Код C# для вилучення 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.");
}

Як вилучити таблиці з HTML

  1. Завантажте вихідний файл за допомогою конструктора HTMLDocument .
  2. Виберіть елементи таблиць методом QuerySelectorAll("table") .
  3. Переберіть повернуті елементи та прочитайте OuterHTML кожної таблиці.
  4. Створіть новий HTMLDocument з вилученої розмітки та базового URI вихідного документа.
  5. Викличте Save() з унікальним ім’ям вихідного файлу для кожної вилученої таблиці.

Можливості й обмеження вилучення HTML-таблиць

  • Виберіть область вилучення. Використовуйте table, щоб вибрати всі таблиці, або точніший селектор на кшталт #price-table, .results table чи main table, щоб обмежити результат.
  • Зберігайте розмітку таблиці. OuterHTML містить вибраний елемент <table>, його атрибути, рядки, клітинки та вкладений вміст.
  • Зберігайте контекст розв’язання ресурсів. Передавання document.BaseURI дає змогу під час обробки інтерпретувати відносні URL у вилученій розмітці відносно вихідного документа.
  • Обробляйте стилі окремо. Вбудовані стилі й атрибути style усередині таблиці залишаються в розмітці. Правила з <head> вихідного документа або зовнішніх таблиць стилів не копіюються до документа, що містить лише таблицю.
  • Відокремлюйте розмітку від вилучення даних. Цей сценарій зберігає кожен вибраний елемент <table> разом із його розміткою. Щоб отримати значення клітинок для JSON, CSV або іншого формату, скористайтеся сторінкою Вилучення даних з HTML-таблиці .

Документація з вилучення HTML-таблиць

Перегляньте Вилучення HTML-таблиць у C# для вибору таблиць, обробки рядків і клітинок, вилучення посилань та прикладів виведення. Розділ Вилучення даних охоплює додаткові сценарії навігації DOM, CSS-селектори, XPath і вилучення вебвмісту.


Установлення Aspose.HTML for .NET

Установіть Aspose.HTML for .NET з NuGet за допомогою .NET CLI:

dotnet add package Aspose.HTML

Також можна скористатися інтерфейсом диспетчера пакетів NuGet або виконати Install-Package Aspose.HTML у консолі диспетчера пакетів. Докладні інструкції наведено в посібнику зі встановлення . Щоб оцінити API без обмежень ознайомлювальної версії, запросіть тимчасову ліцензію .


Запитання про вилучення HTML-таблиць

1. Чи можна вилучити всі таблиці з одного HTML-файлу?

Так. QuerySelectorAll("table") повертає всі відповідні таблиці у порядку документа. Переберіть результат і призначте унікальне ім’я вихідного файлу, якщо кожну таблицю потрібно зберегти окремо.

2. Як вилучити лише одну певну HTML-таблицю?

Використовуйте QuerySelector() зі стабільним ID, класом або структурним селектором, наприклад #price-table чи main table. Метод повертає перший збіг замість усіх елементів <table>.

3. Чи зберігає вилучена HTML-таблиця своє CSS-оформлення?

Вбудовані стилі й атрибути style усередині таблиці зберігаються в OuterHTML. Правила CSS з початкового <head> або зовнішньої таблиці стилів потрібно скопіювати чи підключити окремо, якщо автономний файл має виглядати так само.

4. Чи можна вилучити дані таблиці у CSV або JSON замість збереження HTML-розмітки?

Так, але це інший сценарій. Переберіть рядки таблиці, прочитайте значення <th> і <td> та передайте їх засобу запису CSV або JSON-серіалізатору. Повний приклад наведено на сторінці Вилучення даних з HTML-таблиці .

5. Чи вилучаються вкладені HTML-таблиці окремо?

Загальний селектор table знаходить і зовнішні, і вкладені таблиці. Використовуйте точніший селектор, якщо вкладені таблиці мають залишатися лише всередині батьківської таблиці й не повинні записуватися в окремі файли.

Пов'язані сценарії роботи з HTML-таблицями

Створюйте, редагуйте або вилучайте значення таблиць за допомогою посібників Aspose.HTML for .NET.