HTML-шаблон – HTML Template – примеры C#

В этой статье описывается, как создать HTML-документ на основе шаблона и заполнить его из источника данных. Aspose.HTML предоставляет синтаксис встроенных выражений для работы с шаблонами и различными типами источников данных, такими как XML и JSON.

Разметка шаблона

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

Встроенные выражения

Ниже приведен список поддерживаемого синтаксиса встроенных выражений.

{{ … }} – выражение привязки данных

Выражение привязки данных используется для установки значений элемента управления на основе информации, содержащейся в источнике данных.

Ниже приведен основной синтаксис выражения привязки данных:

{{ выражение привязки данных }}

В следующей демонстрации показано, как использовать выражение привязки данных для получения информации из источника данных XML:

XML Data Source

1<Data>
2    <FirstName>John</FirstName>
3    <LastName>Doe</LastName>
4    <Address>
5        <City>Dallas</City>
6        <Street>Austin rd.</Street>
7        <Number>200</Number>
8    </Address>
9</Data>

Выражение привязки данных в шаблоне HTML-страницы:

HTML шаблон – HTML Template

Это пример шаблона HTML, который использует встроенные выражения для привязки данных. Шаблон включает в себя таблицу с двумя столбцами для «Person» и «Address». В ячейках столбца «Person» отображаются значения {{FirstName}} и {{LastName}} из источника данных. В ячейках столбца «Address» отображаются значения {{Address.Street}} {{Address.Number}} и {{Address.City}}. Синтаксис фигурных скобок используется для обозначения встроенного выражения.

 1<table border=1>
 2    <tr>
 3        <th>Person</th>
 4        <th>Address</th>
 5    </tr>
 6    <tr>
 7        <td>{{FirstName}} {{LastName}}</td>
 8        <td>{{Address.Street}} {{Address.Number}}, {{Address.City}}</td>
 9    </tr>
10</table>

{{#foreach … }} – выражение директивы foreach

Выражение директивы foreach используется для перебора списка элементов в сочетании с выражением привязки данных.

В следующей демонстрации показано, как получить данные всех людей из источника данных XML и заполнить шаблон:

XML Data Source

 1 <Data>
 2     <Persons>
 3         <Person>
 4             <FirstName>John</FirstName>
 5 			<LastName>Doe</LastName>
 6             <Address>
 7                 <Number>200</Number>
 8                 <Street>Austin rd.</Street>
 9                 <City>Dallas</City>
10             </Address>
11             <Phone1>345-345-34-55</Phone1>
12             <Phone2>345-555-09-09</Phone2>
13         </Person>
14         <Person>
15             <FirstName>Jack</FirstName>
16             <LastName>Fox</LastName>
17             <Address>
18                 <Number>25</Number>
19                 <Street>Broadway</Street>
20                 <City>New York</City>
21             </Address>
22             <Phone1>081-544-12-15</Phone1>
23         </Person>
24         <Person>
25             <FirstName>Sherlock</FirstName>
26             <LastName>Holmes</LastName>
27             <Address>
28                   <Number>65</Number>
29                   <Street>Baker str.</Street>
30                   <City>London</City>
31             </Address>
32             <Phone1>012-5344-334</Phone1>
33         </Person>
34     </Persons>
35 </Data>

Выражение директивы foreach в шаблоне HTML-страницы:

HTML Template

Атрибут data_merge указывает, что источником данных является список объектов, и таблица должна повторяться для каждого объекта в списке. Выражения внутри шаблона, такие как {{FirstName}}, {{LastName}}, {{Address.Street}} и {{Address.Number}}, указывают поля из источника данных, которые должны быть вставлены в соответствующие ячейки таблицы.

 1 <table border=1 data_merge='{{#foreach Persons.Person}}'>
 2     <tr>
 3         <th>Person</th>
 4         <th>Address</th>
 5     </tr>
 6     <tr>
 7         <td>{{FirstName}} {{LastName}}</td>
 8         <td>{{Address.Street}} {{Address.Number}}, {{Address.City}}</td>
 9     </tr>
10 </table>

Обратите внимание, что текущая реализация поддерживает выражение директивы foreach только для следующих элементов HTML: DIV, OL, UL и TABLE.

Источник данных

Как было сказано ранее, источник данных может быть представлен в форматах XML и JSON. Ниже приведены примеры обоих источников данных, подготовленных для этой статьи:

XML Data Source

1 <Data>
2     <FirstName>John</FirstName>\
3     <LastName>Doe</LastName>\
4     <Address>\
5         <City>Dallas</City>\
6         <Street>Austin rd.</Street>\
7         <Number>200</Number>\
8     </Address>
9 </Data>

JSON Data Source

1{
2     "FirstName": "John",
3     "LastName": "Doe",
4     "Address": {
5         "City": "Dallas",
6         "Street": "Austin rd.",
7         "Number": "200"
8     }
9 }

Преобразование шаблона в HTML одной строкой кода

После того, как вы подготовили HTML Template, вы можете преобразовать шаблон в HTML в своем приложении C# буквально с помощью одной строки кода! Для этого вам необходимо передать необходимые параметры в ConvertTemplate() (sourcePath, data, options, outputPath).

1// Convert template to HTML
2Converter.ConvertTemplate(
3    Path.Combine(DataDir, "template.html"),
4    new TemplateData(Path.Combine(DataDir, "data-source.json")),
5    new TemplateLoadOptions(),
6    Path.Combine(OutputDir, "template-with-single-line.html")
7);

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

Дополнительные сведения о преобразовании шаблона в HTML вы найдете в статье Преобразование шаблона в HTML.

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

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.