Конвертировать шаблон в 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. Метод принимает четыре параметра:

  1. В качестве источника шаблона используется объект HTMLDocument.
  2. Объект TemplateData содержит данные, которые будут использоваться для заполнения шаблона.
  3. Объект TemplateLoadOptions предоставляет опции для загрузки шаблона.
  4. Строковый параметр используется для указания полного пути к файлу 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 документ на лету

Если ваш случай предполагает указание данных и создание шаблона на лету, вам необходимо выполнить несколько шагов:

  1. Подготовьте шаблон HTML и сохраните его в файл. Метод ConvertTemplate() принимает путь к файлу шаблона в качестве параметра (sourcePath).
  2. Подготовьте источник данных JSON и XML и сохраните его в файл. Конструктор TemplateData() берет путь к этому файлу данных и создает объект данных для метода ConvertTemplate().
  3. Инициализируйте экземпляр класса TemplateLoadOptions, чтобы определить, совпадают ли имена шаблона и элемента данных, независимо от регистра или нет.
  4. Вызовите метод 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.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.