Если вы программист на C# и ищете эффективный способ работы с HTML-файлами, то эта статья для вас. Мы объясним основы того, как C# работает с файлами HTML, от их создания с нуля до чтения и редактирования существующих документов. В этой статье мы узнаем, как создавать, читать и редактировать HTML-файлы на C#.
HTML (Hyper Text Markup Language) — это язык, используемый для создания веб-сайтов и веб-страниц. C#, с другой стороны, является объектно-ориентированным языком программирования, используемым для создания приложений. Файл HTML содержит теги разметки, используемые для форматирования структуры веб-страницы для отображения в браузерах. Мы можем легко манипулировать HTML-файлами программно в приложениях .NET. В этой статье мы рассмотрим, как использовать C# для чтения, записи и редактирования HTML-файлов. Мы рассмотрим способы анализа HTML-кода для определенных элементов и создания новых элементов с нуля или редактирования существующих. Давайте начнем!
В этой статье должны быть раскрыты следующие темы:
- API C# для создания, чтения и редактирования HTML-файлов
- Создать HTML-файл
- Чтение HTML-файла
- Редактировать файл HTML
- Добавить необработанный 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, выполнив следующие шаги:
- Во-первых, создайте экземпляр класса HTMLDocument.
- Затем вызовите метод CreateElement() для создания таких элементов, как заголовок, абзац, текст и т. д.
- Затем вызовите метод CreateTextNode(), чтобы добавить текстовый узел.
- Затем добавьте созданный узел к элементу с помощью метода AppendChild().
- После этого прикрепите элементы к телу документа с помощью метода HTMLDocument.Body.AppendChild().
- Повторите описанные выше шаги, чтобы добавить больше элементов.
- Наконец, сохраните 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-файла на C#
В предыдущем разделе мы создали файл HTML. Теперь мы загрузим файл и прочитаем его содержимое, выполнив следующие шаги:
- Загрузите существующий файл HTML с помощью класса HTMLDocument.
- Чтение и отображение содержимого 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. Мы можем добавить больше узлов/элементов, выполнив шаги, упомянутые выше. Однако мы можем изменить существующие заметки/элементы, выполнив следующие шаги:
- Загрузите существующий файл HTML с помощью класса HTMLDocument.
- Затем вызовите метод CreateTextNode(), чтобы добавить текстовый узел.
- Затем получите первый элемент абзаца с помощью метода GetElementsByTagName(). Он принимает “p” в качестве аргумента.
- После этого вызовите метод AppendChild(), чтобы добавить текстовый узел.
- Повторите вышеуказанные шаги, чтобы изменить другие элементы.
- Наконец, сохраните 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-файле 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-контент в C#
Мы можем добавлять или редактировать элементы, вручную добавляя HTML-код в качестве содержимого, используя свойство InnerHTML элемента. Мы можем добавить необработанный HTML, выполнив следующие шаги:
- Во-первых, создайте экземпляр класса HTMLDocument.
- Затем задайте содержимое элемента Body.InnerHTML как необработанную строку HTML.
- Наконец, сохраните 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");
}
Получить бесплатную лицензию
Вы можете получить бесплатную временную лицензию, чтобы попробовать Aspose.HTML for .NET без ограничений пробной версии.
Заключение
В этой статье мы узнали, как:
- создавать HTML-документы программно;
- загрузить существующий HTML-документ с пути на локальном диске;
- читать HTML из загруженного файла;
- добавить новый контент в существующий файл HTML;
- изменить существующий контент в C#.
Помимо создания, чтения и редактирования HTML-файлов на C#, вы можете узнать больше об Aspose.HTML for .NET API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на нашем бесплатном форуме поддержки.