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

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

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.