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