Вилучення таблиць з 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
- Завантажте вихідний файл за допомогою конструктора
HTMLDocument. - Виберіть елементи таблиць методом
QuerySelectorAll("table"). - Переберіть повернуті елементи та прочитайте
OuterHTMLкожної таблиці. - Створіть новий
HTMLDocumentз вилученої розмітки та базового URI вихідного документа. - Викличте
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.