Создание, чтение и редактирование HTML-файлов в C#

Если вы программист на C# и ищете эффективный способ работы с HTML-файлами, то эта статья для вас. Мы объясним основы того, как C# работает с файлами HTML, от их создания с нуля до чтения и редактирования существующих документов. В этой статье мы узнаем, как создавать, читать и редактировать HTML-файлы на C#.

HTML (Hyper Text Markup Language) — это язык, используемый для создания веб-сайтов и веб-страниц. C#, с другой стороны, является объектно-ориентированным языком программирования, используемым для создания приложений. Файл HTML содержит теги разметки, используемые для форматирования структуры веб-страницы для отображения в браузерах. Мы можем легко манипулировать HTML-файлами программно в приложениях .NET. В этой статье мы рассмотрим, как использовать C# для чтения, записи и редактирования HTML-файлов. Мы рассмотрим способы анализа HTML-кода для определенных элементов и создания новых элементов с нуля или редактирования существующих. Давайте начнем!

В этой статье должны быть раскрыты следующие темы:

  1. API C# для создания, чтения и редактирования HTML-файлов
  2. Создать HTML-файл
  3. Чтение HTML-файла
  4. Редактировать файл HTML
  5. Добавить необработанный HTML-контент в C#

C# API для создания, чтения и редактирования HTML-файлов

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

Класс HTMLDocument API представляет HTML-документ или HTML-страницу, которую мы видим в браузере. Метод CreateElement() этого класса создает элемент HTML, указанный в tagName. Метод CreateTextNode(string) создает узел Text с заданной строкой. Метод 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."));

// Добавить пункт 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");
Редактировать HTML-файл в CSharp

Редактировать HTML-файл в C#

В следующем примере кода показан более сложный пример, в котором мы добавляем новые элементы и изменяем существующие.

// В этом примере кода показано, как и редактировать элементы в HTML-файле esiting.
// Подготовьте выходной путь для сохранения документа
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");
Добавить-редактировать-элементы-в-HTML-файле с помощью 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");
}
Добавить необработанный HTML-контент в CSharp

Добавить необработанный HTML в файл HTML с помощью C#

Получить бесплатную лицензию

Вы можете получить бесплатную временную лицензию, чтобы попробовать Aspose.HTML for .NET без ограничений пробной версии.

Заключение

В этой статье мы узнали, как:

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

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

Смотрите также