Установка атрибутов в шаблоне HTML – примеры C#

HTML Template

Шаблон HTML (HTML Template) представляет собой стандартный HTML-файл, содержащий специальные встроенные выражения, обозначенные двойными фигурными скобками, которые сопоставляют источник входных данных с разметкой HTML-страницы. Во время обработки шаблона эти встроенные выражения будут заменены соответствующими значениями данных, как указано в правилах, изложенных в статье HTML Template.

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

Установить атрибут в шаблоне HTML

Атрибуты используются для HTML-элементов, чтобы предоставить дополнительную информацию об элементе, указать его характеристики или задать такие свойства, как идентификатор, класс, стиль и т. д. Эти атрибуты указываются в открывающем теге HTML-элемента и могут быть установлены с использованием статических значений или динамические данные (встроенные выражения):

Установите атрибут checked для флажка HTML (HTML Checkbox)

Например, возьмем следующий HTML-шаблон:

1<input type="checkbox" {{attr}} disabled />

Это элемент формы флажка с отключенным набором атрибутов, который делает его недоступным для редактирования, и меткой {{attr}}, к которой можно добавить атрибут на основе источника данных. В этой метке, используя следующий источник данных, мы установим атрибут checked, который будет отображать галочку в этом флажке HTML при рисовании:

1<Data><attr>checked</attr></Data>

Полный пример заполнения шаблона на C# выглядит так:

 1// Bind XML data to HTML template and export as HTML and PNG using C#
 2
 3// Create a template with a string of HTML code
 4string htmlCode = "<input type=\"checkbox\" disabled {{attr}} />";
 5
 6// Set data for the template in XML format
 7string dataSource = "<Data><attr>checked</attr></Data>";
 8
 9// Convert template to HTML
10using (HTMLDocument htmlDocument = Converter.ConvertTemplate(htmlCode, string.Empty,
11           new TemplateData(new TemplateContentOptions(dataSource, TemplateContent.XML)),
12           new TemplateLoadOptions()))
13{
14    // Request the input checkbox element that we specified in the template
15    HTMLInputElement input = (HTMLInputElement)htmlDocument.GetElementsByTagName("input").First();
16
17    // Check if it has a checkmark 
18    Console.WriteLine("Checked: " + input.Checked);
19    Console.WriteLine("Attributes.Length: " + input.Attributes.Length);
20    Console.WriteLine("Attributes[0].Name: " + input.Attributes[0].Name);
21    Console.WriteLine("Attributes[1].Name: " + input.Attributes[1].Name);
22    Console.WriteLine("Attributes[2].Name: " + input.Attributes[2].Name);
23
24    /*
25    This example produces the following results:
26
27    Checked: True
28    Attributes.Length: 3
29    Attributes[0].Name: type
30    Attributes[1].Name: disabled
31    Attributes[2].Name: checked
32    */
33
34    // Save the HTML document to a file
35    htmlDocument.Save(Path.Combine(OutputDir, "out-checked.html"));
36
37    // Prepare a path to the output image file
38    string outputPath = Path.Combine(OutputDir, "out-checked.png"); 
39    
40    // Convert HTML to PNG using RenderTo() method
41    htmlDocument.RenderTo(new ImageDevice(new ImageRenderingOptions(), outputPath));
42}

Давайте внимательнее посмотрим на этот фрагмент кода C#:

  1. В примере мы создаем HTML-шаблон с нуля, т. е. из строки кода. Итак, сначала подготавливаем HTML-код.
  2. Мы используем ConvertTemplate(content, baseUrl, data, options) для преобразования шаблона. Этот метод принимает четыре параметра и преобразует строку содержимого HTML в полностью сформированный объект htmlDocument:
    • content (htmlCode) – строка с HTML-кодом для использования в качестве шаблона;
    • baseUrl (string.Empty) – в данном примере пустая строка, так как этот параметр не используется;
    • data (TemplateData) – источник данных для заполнения шаблона. В данном случае это строка XML, хранящаяся в переменной dataSource;
    • options (TemplateLoadOptions) – загрузить опции для шаблона. Вы можете создать его с помощью конструктора TemplateLoadOptions().
  3. После создания HTML-документа мы обращаемся к элементу <input> внутри документа и проверяем, что он имеет правильные атрибуты, такие как checked в этом случае:
    • Мы используем метод GetElementsByTagName() для получения первого элемента <input>.
    • Затем мы выполняем несколько утверждений для проверки свойств элемента <input>. Первое утверждение Assert.True(input.Checked) проверяет, установлен ли флажок. Следующие два утверждения, Assert.Equal(3, input.Attributes.Length) и Assert.Equal("type", input.Attributes[0].Name), проверяют количество атрибутов и имя первого атрибута входного элемента соответственно и так далее.
  4. Чтобы преобразовать документ HTML в файл изображения, мы используем метод RenderTo().
  5. Наконец, мы вызываем метод Save(path). HTML-документ сохраняется в файле out-checked.html. Содержимое этого файла можно увидеть ниже:
1<html>
2    <head>
3    </head>
4    <body>
5        <input type="checkbox" disabled="" checked="">
6    </body>
7</html>

Вы можете скачать полные примеры и файлы данных с GitHub.

Пустой флажок – Empty Checkbox

Если вы хотите создать документ на основе этого шаблона с пустым элементом флажка, используйте следующий источник данных:

1<Data><attr></attr></Data>

Как видите, для получения такого результата достаточно просто передать пустое значение. Полный пример преобразования выглядит так:

 1// Populate HTML template with XML data using attribute control in C#
 2
 3// Create a template with a string of HTML code
 4string htmlCode = "<input type=\"checkbox\" disabled {{attr}} />";
 5
 6// Create an empty data source that won't set an attribute
 7string dataSource = "<Data><attr></attr></Data>";
 8
 9// Convert template to HTML
10using (HTMLDocument htmlDocument = Converter.ConvertTemplate(htmlCode, string.Empty,
11           new TemplateData(new TemplateContentOptions(dataSource, TemplateContent.XML)),
12           new TemplateLoadOptions()))
13{
14    // Request the input checkbox element that we specified in the template
15    HTMLInputElement input = (HTMLInputElement)htmlDocument.GetElementsByTagName("input").First();
16
17    // Сheck if the checkbox is checked - it should not be there
18    Console.WriteLine("Checked: " + input.Checked);
19    Console.WriteLine("Attributes.Length: " + input.Attributes.Length);
20    Console.WriteLine("Attributes[0].Name: " + input.Attributes[0].Name);
21    Console.WriteLine("Attributes[1].Name: " + input.Attributes[1].Name);
22   
23    /*
24    This example produces the following results:
25
26    Checked: False
27    Attributes.Length: 2
28    Attributes[0].Name: type
29    Attributes[1].Name: disabled
30    */
31
32    // Save the HTML document to a file
33    htmlDocument.Save(Path.Combine(OutputDir, "out-unchecked.html"));
34
35    // Prepare a path to the output file
36    string outputPath = Path.Combine(OutputDir, "out-unchecked.png");
37
38    // Convert HTML to PNG
39    htmlDocument.RenderTo(new ImageDevice(new ImageRenderingOptions(), outputPath));
40}

Aspose.HTML предлагает бесплатные онлайн Конвертеры для преобразования HTML, XHTML, MHTML, EPUB, XML и Markdown. файлы в различные популярные форматы. Вы можете легко конвертировать HTML в PDF, HTML в изображение, EPUB to PDF, SVG в PDF, MHTML в PDF, или MD в HTML. Просто выберите файл, выберите формат для преобразования, и все готово! Попробуйте наши мощные Конвертеры бесплатно прямо сейчас!

Text “Бесплатные онлайн-конвертеры”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.