Завантаження HTML за допомогою Aspose.HTML for .NET

Aspose.HTML for .NET завантажує HTML у HTMLDocument – дерево документа в пам’яті, яке використовують для запитів DOM, зміни вмісту, видобування даних, збереження та перетворення. Доступні конструктори HTMLDocument приймають локальний шлях, віддалений URL, рядок розмітки або потік, тому застосунок може вибрати джерело відповідно до свого робочого процесу.


Завантаження HTML-файлу в C#

Передайте локальний шлях до файлу конструктору HTMLDocument. Після завантаження документ надає доступ до проаналізованої моделі DOM. У прикладі відкривається input.html, а повна розмітка елемента документа читається через OuterHTML .

Код C# для завантаження HTML-документа з файлу

using System;
using Aspose.Html;

using HTMLDocument document = new HTMLDocument("input.html");

string html = document.DocumentElement.OuterHTML;
Console.WriteLine(html);

Вибір джерела HTML і конструктора

  • Локальний файл. Передайте шлях, якщо HTML уже збережено на диску, а відносні ресурси мають визначатися відносно розташування документа.
  • Віддалений URL. Передайте адресу HTTP або HTTPS, якщо застосунок має завантажити вебсторінку та дозволені зовнішні ресурси.
  • Рядок розмітки. Передайте HTML-код разом із базовою URL-адресою, якщо розмітка вже доступна в пам’яті.
  • Потік. Передайте доступний для читання потік і базову URL-адресу, якщо HTML надходить із завантаження, тіла відповіді, бази даних або іншого джерела в пам’яті.

Завантаження HTML з URL у C#

Конструктор з однією адресою може відкрити віддалену вебсторінку. Під час завантаження з URL також обробляються доступні зовнішні ресурси, дозволені конфігурацією середовища. Після завантаження використовуйте властивості та методи DOM для перегляду або зміни документа.

Код C# для завантаження HTML-документа з URL

using System;
using Aspose.Html;

using HTMLDocument document =
    new HTMLDocument("https://docs.aspose.com/html/net/creating-a-document/");

string html = document.DocumentElement.OuterHTML;
Console.WriteLine(html);

Завантаження HTML із рядка в C#

Використовуйте конструктор із двома аргументами, якщо застосунок уже має HTML-розмітку в рядку. Другий аргумент – базова URL-адреса для визначення відносних зображень, таблиць стилів, скриптів, шрифтів і посилань. У цьому самодостатньому прикладі "." позначає поточний каталог. Якщо розмітка містить відносні посилання, укажіть фактичний каталог або вебадресу.

Код C# для створення HTML-документа з рядка

using System;
using Aspose.Html;

string markup = "<p>HTML loaded from a string</p>";

// Use the current directory as the base URL
string baseUrl = ".";

using HTMLDocument document = new HTMLDocument(markup, baseUrl);

string html = document.DocumentElement.OuterHTML;
Console.WriteLine(html);

Завантаження HTML із потоку в C#

Конструктор потоку читає дані з поточної позиції. Якщо застосунок щойно записав HTML, очистьте буфер writer і поверніть позицію на початок перед створенням документа. Не закривайте потік, доки HTMLDocument не завершить читання. У прикладі "." використовується як нейтральна базова URL-адреса поточного каталогу, оскільки розмітка не містить відносних ресурсів.

Код C# для завантаження HTML-документа з потоку

using System;
using System.IO;
using System.Text;
using Aspose.Html;

using MemoryStream stream = new MemoryStream();

// Keep the stream open after disposing the writer
using (StreamWriter writer = new StreamWriter(stream, Encoding.UTF8, 1024, true))
{
    writer.Write("<p>HTML loaded from a stream</p>");
    writer.Flush();
}

// Reset the stream before HTMLDocument reads it
stream.Position = 0;

using HTMLDocument document =
    new HTMLDocument(stream, ".");

string html = document.DocumentElement.OuterHTML;
Console.WriteLine(html);

Особливості завантаження HTML

  • Конструктори аналізують HTML і створюють DOM. Отримане дерево відповідає правилам аналізу HTML. Подальша серіалізація може нормалізувати структуру або розмітку, тому не очікуйте побайтової копії джерела.
  • Базова URL-адреса керує відносними ресурсами. Рядки та потоки не мають власного розташування документа. Укажіть розташування, відносно якого мають визначатися CSS, зображення, скрипти, шрифти та посилання.
  • Конструктори документів завантажують синхронно. Вони очікують завершення завантаження документа й дозволених зовнішніх ресурсів. Якщо потрібна асинхронна навігація, використовуйте Navigate() і події документа.
  • Віддалене завантаження залежить від середовища. Некоректні адреси, перенаправлення, автентифікація, збої мережі й обмеження безпеки можуть перешкодити завантаженню сторінки або пов’язаного ресурсу.
  • Звільняйте завантажені документи. HTMLDocument зберігає стан документа й ресурсів. Оголошення або блок using звільняє цей стан після завершення обробки.

Документація та довідник API для завантаження HTML

У статті Створення або завантаження HTML-документів наведено приклади конструкторів, правила використання базової URL-адреси, асинхронну навігацію та типові проблеми завантаження. Після завантаження використовуйте посібник HTML DOM для навігації вузлами або Редагування HTML-документа для зміни вмісту й атрибутів. Щоб створити новий документ без наявного джерела, перегляньте Створення HTML у C# .


Установлення 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-документ у C#?

Передайте локальний шлях або URL конструктору HTMLDocument. Для розмітки в рядку або потоці передайте вміст разом із базовою URL-адресою. Конструктор аналізує джерело й надає отриману модель HTML DOM.

2. Чи зберігається вихідна HTML-розмітка без змін?

Не покладайтеся на побайтову тотожність. Aspose.HTML аналізує джерело й створює DOM, а подальша серіалізація може нормалізувати неявні елементи, кодування символів, пробіли або структуру розмітки зі збереженням моделі документа.

3. Чи може Aspose.HTML завантажувати вебсторінку асинхронно?

Так. Конструктори виконують синхронне завантаження. Дотримуйтеся інструкції Асинхронне завантаження HTML , щоб створити документ, підписатися на події OnReadyStateChange або OnLoad, викликати Navigate() та чекати протягом визначеного застосунком часу.

4. Чому віддалений HTML-документ може не завантажитися?

Поширені причини – некоректний або недоступний URL, перенаправлення, вимоги автентифікації, мережеві обмеження, заблоковані зовнішні ресурси або параметри безпеки середовища. Перевірте адресу й налаштуйте лише потрібний застосунку доступ до мережі.

5. Як обмежити зовнішні ресурси під час завантаження HTML?

Створіть документ із Configuration, яка застосовує потрібні параметри безпеки й завантаження ресурсів. Обмежте віддалений доступ довіреними розташуваннями, особливо якщо HTML або URL надходить від ненадійного користувача.

Пов’язані робочі процеси з HTML-документами

Продовжуйте створення, редагування, вибір елементів або структуровані запити.