Конвертировать шаблон в HTML – Template to HTML- примеры C#
Aspose.HTML для .NET предлагает набор методов ConvertTemplate(), которые используются для преобразования HTML-шаблона в HTML-документ. Методы принимают несколько параметров, таких как путь к файлу шаблона, источник данных и параметры загрузки, и возвращают HTML-документ. Шаблон HTML (HTML Template) – это фрагмент кода HTML, содержащий заполнители для динамических данных. Эти заполнители называются выражениями и заключаются в двойные фигурные скобки, например: {{выражение}}. Источник данных предоставляет фактические значения для этих выражений. Метод ConvertTemplate() заменяет выражения в шаблоне значениями из источника данных, создавая полный HTML-документ. Этот метод можно использовать с различными типами источников данных, такими как XML и JSON.
В этой статье описывается, как конвертировать шаблон в HTML на примерах C# с использованием библиотеки Aspose.HTML для .NET.
Преобразование шаблона в HTML одной строкой кода
После того, как вы подготовили HTML-шаблон, вы можете преобразовать шаблон в HTML документ в своем приложении C# буквально с помощью одной строки кода! Для этого необходимо передать необходимые параметры методу
ConvertTemplate(sourcePath
, data
, options
, outputPath
).
1using System.IO;
2using Aspose.Html.Converters;
3using Aspose.Html.Loading;
4...
5 // Convert template to HTML
6 Converter.ConvertTemplate(
7 Path.Combine(DataDir, "template.html"),
8 new TemplateData(Path.Combine(DataDir, "data-source.json")),
9 new TemplateLoadOptions(),
10 Path.Combine(OutputDir, "template-with-single-line.html")
11 );
Конвертировать Template в HTML документ
Давайте воспользуемся методом
ConvertTemplate(HTMLDocument
, TemplateData
, TemplateLoadOptions
, string
) для преобразования шаблона HTML в настоящий документ HTML. Метод принимает четыре параметра:
- В качестве источника шаблона используется объект
HTMLDocument
. - Объект
TemplateData
содержит данные, которые будут использоваться для заполнения шаблона. - Объект
TemplateLoadOptions
предоставляет опции для загрузки шаблона. - Строковый параметр используется для указания полного пути к файлу HTML в качестве результата преобразования.
Метод использует информацию из этих параметров для создания HTML-документа.
1using System.IO;
2using Aspose.Html.IO;
3using Aspose.Html.Saving;
4using Aspose.Html.Converters;
5...
6
7 // Prepare a path to an HTML source file
8 var sourcePath = Path.Combine(DataDir, "template.html");
9
10 // Prepare a path to an xml template data file
11 var templateDataPath = Path.Combine(DataDir, "templateData.xml");
12
13 // Define TemplateData object instance
14 var templateData = new TemplateData(templateDataPath);
15
16 // Prepare a path to the result file
17 var resultPath = Path.Combine(OutputDir, "result.html");
18
19 // Define default TemplateLoadOptions object
20 var options = new TemplateLoadOptions();
21
22 // Initialize an HTML document as conversion source
23 var document = new HTMLDocument(sourcePath, new Configuration());
24
25 // Convert template to HTML
26 Converter.ConvertTemplate(document, templateData, options, resultPath);
27
28 // Clear resources
29 document.Dispose();
Код создает экземпляр класса
HTMLDocument и использует метод
Converter.ConvertTemplate(), чтобы преобразовать файл шаблона (template.html) в документ HTML с использованием файла источника данных (templateData.xml). Метод принимает четыре параметра: объект HTMLDocument
, объект TemplateData
, созданный с использованием файла источника данных, объект TemplateLoadOptions
и путь к файлу для результирующего HTML-документа. Результирующий HTML-документ сохраняется по указанному пути к файлу (result.html). После преобразования объект document
удаляется.
Конвертировать Template в HTML документ на лету
Если ваш случай предполагает указание данных и создание шаблона на лету, вам необходимо выполнить несколько шагов:
- Подготовьте шаблон HTML и сохраните его в файл. Метод ConvertTemplate() принимает путь к файлу шаблона в качестве параметра (
sourcePath
). - Подготовьте источник данных JSON и XML и сохраните его в файл. Конструктор TemplateData() берет путь к этому файлу данных и создает объект данных для метода ConvertTemplate().
- Инициализируйте экземпляр класса TemplateLoadOptions, чтобы определить, совпадают ли имена шаблона и элемента данных, независимо от регистра или нет.
- Вызовите метод
ConvertTemplate() и передайте
sourcePath
,data
,options
иoutputPath
для него. OutputPath – путь для сохранения заполненного данными файла шаблона.
1using System.IO;
2using Aspose.Html.Converters;
3using Aspose.Html.Loading;
4...
5
6 // Prepare a path to an HTML Template file
7 string sourcePath = Path.Combine(OutputDir, "template.html");
8
9 // Prepare an HTML Template and save it to the file
10 var template = @"
11 <table border=1>
12 <tr>
13 <th>Person</th>
14 <th>Address</th>
15 </tr>
16 <tr>
17 <td>{{FirstName}} {{LastName}}</td>
18 <td>{{Address.Street}} {{Address.Number}}, {{Address.City}}</td>
19 </tr>
20 </table>
21 ";
22 File.WriteAllText(sourcePath, template);
23
24 // Prepare a path to JSON data source file
25 string jsonPath = Path.Combine(OutputDir, "data-source.json");
26
27 // Prepare a JSON data source and save it to the file
28 var data = @"{
29 'FirstName': 'John',
30 'LastName': 'Doe',
31 'Address': {
32 'City': 'Dallas',
33 'Street': 'Austin rd.',
34 'Number': '200'
35 }
36 }";
37 File.WriteAllText(jsonPath, data);
38
39 // Prepare a path to the output file (data-filled template file)
40 string outputPath = Path.Combine(OutputDir, "template-output.html");
41
42 // Invoke Converter.ConvertTemplate in order to populate 'template.html' with the data source from 'data-source.json' file
43 Converter.ConvertTemplate(sourcePath, new TemplateData(jsonPath), new TemplateLoadOptions(), outputPath);
Aspose.HTML предлагает бесплатные онлайн Конвертеры для преобразования HTML, XHTML, MHTML, EPUB, XML и Markdown файлы в различные популярные форматы. Вы можете легко конвертировать HTML в PDF, HTML в JPG, SVG to PDF, MHTML в PDF или MD в HTML. Просто выберите файл, выберите формат для преобразования, и все готово. Это быстро и совершенно бесплатно!
Вы можете скачать полные примеры и файлы данных с GitHub.