Створення, читання та редагування файлів HTML у C#

Якщо ви програміст на C# і шукаєте ефективний спосіб роботи з файлами HTML, тоді ця стаття для вас. Ми пояснимо основи того, як C# працює з файлами HTML, від їх створення з нуля до читання та редагування існуючих документів. У цій статті ми навчимося створювати, читати та редагувати файли HTML у C#.

HTML(Hyper Text Markup Language) – мова, яка використовується для створення веб-сайтів і веб-сторінок. C#, з іншого боку, є об’єктно-орієнтованою мовою програмування, яка використовується для створення програм. Файл HTML містить теги розмітки, які використовуються для форматування структури веб-сторінки для відображення в браузерах. Ми можемо легко маніпулювати файлами HTML програмним шляхом у програмах .NET. У цій статті ми розглянемо, як використовувати C# для читання, запису та редагування файлів HTML. Ми розглянемо способи аналізу HTML-коду для певних елементів і створення нових елементів з нуля або редагування існуючих. Давайте почнемо!

У цій статті будуть розглянуті такі теми:

  1. C# API для створення, читання та редагування файлів HTML
  2. Створити файл HTML
  3. Прочитати файл HTML
  4. Редагувати файл HTML
  5. Додати вміст Raw HTML у C#

C# API для створення, читання та редагування файлів HTML

Для створення, читання та редагування файлів HTML ми будемо використовувати Aspose.HTML for .NET API. Це розширений API обробки HTML, який дозволяє створювати, змінювати та витягувати дані з документів HTML. Він також дозволяє конвертувати та відтворювати документи HTML без будь-якого зовнішнього програмного забезпечення.

Клас HTMLDocument API представляє документ HTML або сторінку HTML, яку ми бачимо у браузері. Метод CreateElement() цього класу створює елемент HTML, визначений tagName. Метод CreateTextNode(string) створює текстовий вузол із заданим рядком. Метод AppendChild() інтерфейсу Node додає вузол у кінець списку дочірніх елементів зазначеного батьківського вузла. Метод Save() зберігає вихідний файл. Ви також можете прочитати більше про простір імен DOM у документації.

Завантажте DLL API або встановіть його за допомогою NuGet.

PM> Install-Package Aspose.Html

Створення файлу HTML на C#

Ми можемо легко створити файл HTML, виконавши наведені нижче кроки:

  1. По-перше, створіть екземпляр класу HTMLDocument.
  2. Потім викличте метод CreateElement(), щоб створити такі елементи, як заголовок, абзац, текст тощо.
  3. Потім викличте метод CreateTextNode(), щоб додати текстовий вузол.
  4. Далі додайте створений вузол до елемента за допомогою методу AppendChild().
  5. Після цього приєднайте елементи до тіла документа за допомогою методу HTMLDocument.Body.AppendChild().
  6. Повторіть описані вище дії, щоб додати більше елементів.
  7. Нарешті, збережіть HTML-документ за допомогою методу Save(). Він приймає вихідний шлях до файлу як аргумент.

У наведеному нижче прикладі коду показано, як створити файл HTML за допомогою C#.

// Цей приклад коду демонструє, як створити документ HTML.

// Створіть порожній документ HTML
var document = new HTMLDocument();

// Додайте заголовок
// 1. Створіть елемент заголовка
var h2 = (HTMLHeadingElement)document.CreateElement("h2");

// 2. Створіть текстовий елемент
var text = document.CreateTextNode("This is Sample Heading!");

// 3. додати текстовий елемент до заголовка
h2.AppendChild(text);

// 4. Додайте заголовок to the document
document.Body.AppendChild(h2);

// Додати абзац
// 1. Створіть елемент абзацу
var p = (HTMLParagraphElement)document.CreateElement("p");

// 2. Установіть спеціальний атрибут
p.SetAttribute("id", "first-paragraph");

// 3. Створіть текстовий вузол
var paraText = document.CreateTextNode("This is first paragraph. ");

// 4. Допишіть текст до абзацу
p.AppendChild(paraText);

// 5. Приєднайте абзац до основного тексту документа 
document.Body.AppendChild(p);

// Додати впорядкований список
// Створіть елемент абзацу
var list = (HTMLOListElement)document.CreateElement("ol");

// Додайте пункт 1
var item1 = (HTMLLIElement)document.CreateElement("li");
item1.AppendChild(document.CreateTextNode("First list item."));

// Додайте li пункт 2
var item2 = (HTMLLIElement)document.CreateElement("li");
item2.AppendChild(document.CreateTextNode("Second list item."));

// Додайте елементи li до списку
list.AppendChild(item1);
list.AppendChild(item2);

// Приєднати список до основної частини документа 
document.Body.AppendChild(list);

// Збережіть документ HTML у файл 
document.Save(@"C:\Files\html\create-new-document.html");
Створіть-HTML-файл-у-CSharp

Створіть файл HTML на C#

Читання файлу HTML на C#

У попередньому розділі ми створили файл HTML. Тепер ми завантажимо файл і прочитаємо його вміст, виконавши наведені нижче дії:

  1. Завантажте наявний файл HTML за допомогою класу HTMLDocument.
  2. Прочитати та показати вміст HTMLDocument.DocumentElement.OuterHTML.

У наступному прикладі коду показано, як читати файл HTML за допомогою C#.

// Цей приклад коду демонструє, як читати файл HTML
// Підготуйте вихідний шлях для збереження документа
string documentPath = @"C:\Files\html\create-new-document.html";

// Завантажте файл HTML
var document = new HTMLDocument(documentPath);

// Записати вміст документа у вихідний потік
Console.WriteLine(document.DocumentElement.OuterHTML);
<html><head></head><body><h2>This is Sample Heading!</h2><p id="first-paragraph">This is first paragraph. </p><ol><li>First list item.</li><li>Second list item.</li></ol></body></html>

Редагування файлу HTML у C#

Ми також можемо оновлювати вміст файлів HTML. Ми можемо додати більше вузлів/елементів, виконуючи кроки, згадані вище. Однак ми можемо змінити наявні примітки/елементи, виконавши наведені нижче кроки:

  1. Завантажте наявний файл HTML за допомогою класу HTMLDocument.
  2. Потім викличте метод CreateTextNode(), щоб додати текстовий вузол.
  3. Далі отримайте перший елемент абзацу за допомогою методу GetElementsByTagName(). Він приймає “p” як аргумент.
  4. Після цього викличте метод AppendChild(), щоб додати текстовий вузол.
  5. Повторіть описані вище кроки, щоб змінити інші елементи.
  6. Нарешті, збережіть HTML-документ за допомогою методу Save(). Він приймає вихідний шлях до файлу як аргумент.

У наведеному нижче прикладі коду показано, як змінити файл HTML за допомогою C#.

// Цей приклад коду демонструє, як редагувати вміст файлу HTML.
// Підготуйте вихідний шлях для збереження документа
string documentPath = @"C:\Files\html\create-new-document.html";

// Створіть екземпляр документа HTML
var document = new HTMLDocument(documentPath);

// Створіть текстовий вузол
var oldParaText = document.CreateTextNode("This is old first paragraph.");

// Отримайте елемент першого абзацу
var p = (HTMLParagraphElement)document.GetElementsByTagName("p").First();
p.AppendChild(oldParaText);

// Збережіть документ HTML у файл 
document.Save(@"C:\Files\html\modify.html");
Edit-an-HTML-File-in-CSharp

Редагування файлу HTML у C#

Наступний приклад коду показує складніший приклад, у якому ми додаємо нові елементи та змінюємо існуючі.

// У цьому прикладі коду показано, як і як редагувати елементи у файлі HTML.
// Підготуйте вихідний шлях для збереження документа
string documentPath = @"C:\Files\html\create-new-document.html";

// Створіть екземпляр документа HTML
var document = new HTMLDocument(documentPath);

// Створіть елемент стилю та призначте зелений колір для всіх елементів із назвою класу, що дорівнює "gr".
var style = document.CreateElement("style");
style.TextContent = ".rd { color: red }";

// Знайдіть елемент заголовка документа та додайте до нього елемент стилю
var head = document.GetElementsByTagName("head").First();
head.AppendChild(style);

// Створіть текстовий вузол
var oldParaText = document.CreateTextNode("This is old first paragraph.");

// Створіть елемент абзацу з назвою класу "gr".
var p = (HTMLParagraphElement)document.GetElementsByTagName("p").First();
p.ClassName = "rd";
p.AppendChild(oldParaText);

// Створіть елемент абзацу
var newPara = (HTMLParagraphElement)document.CreateElement("p");

// Створіть текстовий вузол
var paraText = document.CreateTextNode("This is second paragraph. ");

// Додайте текст до абзацу
newPara.AppendChild(paraText);

// Приєднати абзац до тіла документа 
document.Body.AppendChild(newPara);

// Збережіть документ HTML у файл 
document.Save(@"C:\Files\html\edit.html");
Add-Edit-Elements-in-HTML-File-using-CSharp

Додавання та редагування елементів у файлі HTML за допомогою C#

Додайте необроблений HTML-вміст у C#

Ми можемо додавати або редагувати елементи, додаючи вручну HTML-код як вміст за допомогою властивості InnerHTML елемента. Ми можемо додати необроблений HTML, виконавши наведені нижче кроки:

  1. По-перше, створіть екземпляр класу HTMLDocument.
  2. Далі встановіть вміст елемента Body.InnerHTML як необроблений рядок HTML.
  3. Нарешті, збережіть HTML-документ за допомогою методу Save(). Він приймає вихідний шлях до файлу як аргумент.

У наведеному нижче прикладі коду показано, як додати необроблений вміст HTML до файлу за допомогою C#.

// Цей приклад коду демонструє, як додати необроблений HTML до тіла HTML.
// Створіть екземпляр документа HTML
using (var document = new HTMLDocument())
{
    // Запишіть вміст документа HTML у вивід консолі
    Console.WriteLine(document.DocumentElement.OuterHTML); 

    // Встановіть вміст елемента body
    document.Body.InnerHTML = "<p>HTML is the standard markup language for Web pages.</p>";

    /// Збережіть документ HTML у файл 
    document.Save(@"C:\Files\html\using-innerHTML.html");
}
Add-Raw-HTML-Content-in-CSharp

Додайте необроблений HTML у файл HTML за допомогою C#

Отримайте безкоштовну ліцензію

Ви можете отримати безкоштовну тимчасову ліцензію, щоб спробувати Aspose.HTML for .NET без оціночних обмежень.

Висновок

У цій статті ми дізналися, як:

  • програмно створювати документи HTML;
  • завантажити існуючий HTML-документ із шляху локального диска;
  • читати HTML із завантаженого файлу;
  • додати новий вміст до існуючого файлу HTML;
  • змінити наявний вміст у C#.

Окрім створення, читання та редагування HTML-файлів у C#, ви можете дізнатися більше про Aspose.HTML for .NET API за допомогою документації. У разі будь-яких неясностей зв’яжіться з нами на нашому безкоштовному форумі підтримки.

Дивись також