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

HTML Template

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

Библиотека Aspose.HTML для .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# выглядит так:

 1using Aspose.Html;
 2using Aspose.Html.Converters;
 3using Aspose.Html.Loading;
 4using Aspose.Html.Rendering.Image;
 5using System.IO;
 6using System.Linq;
 7...
 8    // Create a template with a string of HTML code
 9    var htmlCode = "<input type=\"checkbox\" disabled {{attr}} />";
10
11    // Set data for the template in XML format
12    var dataSource = "<Data><attr>checked</attr></Data>";
13
14    // Convert template to HTML
15    using (var htmlDocument = Converter.ConvertTemplate(htmlCode, string.Empty,
16                new TemplateData(new TemplateContentOptions(dataSource, TemplateContent.XML)),
17                new TemplateLoadOptions()))
18    {
19        // Request the input checkbox element that we specified in the template
20        var input = (HTMLInputElement)htmlDocument.GetElementsByTagName("input").First();
21
22        // Check if it has a checkmark 
23        Assert.True(input.Checked);
24        Assert.Equal(3, input.Attributes.Length);
25        Assert.Equal("type", input.Attributes[0].Name);
26        Assert.Equal("disabled", input.Attributes[1].Name);
27        Assert.Equal("checked", input.Attributes[2].Name);
28
29        // Prepare a path to the output image file
30        string outputPath = Path.Combine(OutputDir, "out-checked.png"); 
31                
32        // Convert HTML to PNG using RenderTo() method
33        htmlDocument.RenderTo(new ImageDevice(new ImageRenderingOptions(), outputPath));
34
35        // Save the HTML document to a file
36        htmlDocument.Save(Path.Combine(OutputDir, "out-checked.html"));
37    }

Давайте внимательнее посмотрим на этот фрагмент кода 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>

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

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

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.