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

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

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

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

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.