Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Cet article décrit comment utiliser Aspose.HTML for Java afin de créer un document HTML basé sur un modèle et de le remplir avec des données provenant de diverses sources, telles que XML ou JSON. En utilisant la syntaxe des expressions en ligne, vous pouvez efficacement faire correspondre les sources de données à votre modèle HTML et générer dynamiquement du contenu.
Aspose.HTML for Java propose un ensemble de méthodes convertTemplate() qui sont utilisées pour convertir un modèle HTML en un document HTML. Ces méthodes prennent plusieurs paramètres (par exemple, les chemins d’accès au modèle et à la source de données, un objet TemplateLoadOptions et un chemin d’accès au document HTML résultant) et renvoient le document HTML rempli.
Un modèle HTML est un fichier HTML standard qui contient des expressions en ligne spéciales. Ces expressions utilisent des doubles accolades {{ }} pour faire correspondre des données provenant de la source de données d’entrée à des parties spécifiques du document HTML. Lors du traitement, ces marqueurs de modèle sont remplacés par les valeurs de données correspondantes, conformément aux règles mentionnées ci-dessous.
Voici la liste des expressions en ligne prises en charge.
L’expression data-binding est utilisée pour définir les valeurs de l’élément de contrôle sur la base des informations contenues dans la source de données.
Voici la syntaxe de base de l’expression de liaison de données :
{{ expression de liaison de données }}
La démonstration suivante montre comment utiliser l’expression data-binding pour obtenir des informations à partir de la source de données XML.
**Source de données XML
1<Data>
2<FirstName>John</FirstName>
3<LastName>Doe</LastName>
4<Address>
5 <City>Chicago</City>
6 <Street>Oakmound Drive</Street>
7 <Number>100</Number>
8</Address>
9</Data>L’expression de liaison de données dans le modèle de page HTML :
HTML Template
Ce modèle HTML démontre l’utilisation d’expressions en ligne pour la liaison de données. Il présente un tableau avec deux colonnes : “Person” et “Address” La colonne “Person” affiche dynamiquement les données pour {{FirstName}} et {{LastName}} à partir de la source de données, tandis que la colonne “Address” affiche {{Address.Street}} {{Address.Number}} et {{Address.City}}. Les expressions en ligne sont définies à l’aide de la syntaxe des accolades.
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>L’expression directive foreach est utilisée pour parcourir la liste des éléments en combinaison avec l’expression data-binding.
La démonstration suivante montre comment récupérer toutes les personnes de la source de données et remplir un modèle :
**Source de données XML
1<Data>
2 <Persons>
3 <Person>
4 <FirstName>John</FirstName>
5 <LastName>Doe</LastName>
6 <Address>
7 <Number>100</Number>
8 <Street>Oakmound Drive</Street>
9 <City>Chicago</City>
10 </Address>
11 <Phone1>773-349-7747</Phone1>
12 <Phone2>708-252-9790</Phone2>
13 </Person>
14 <Person>
15 <FirstName>Jack</FirstName>
16 <LastName>Fox</LastName>
17 <Address>
18 <Number>355</Number>
19 <Street>Haul Road</Street>
20 <City>San Francisco</City>
21 </Address>
22 <Phone1>650-942-7641</Phone1>
23 </Person>
24 <Person>
25 <FirstName>Sherlock</FirstName>
26 <LastName>Holmes</LastName>
27 <Address>
28 <Number>45</Number>
29 <Street>Baker str.</Street>
30 <City>London</City>
31 </Address>
32 <Phone1>012-5146-564</Phone1>
33 </Person>
34 </Persons>
35</Data>L’expression de la directive foreach dans le modèle de page HTML :
HTML Template
L’attribut data_merge spécifie que la source de données est une liste d’objets et que le tableau doit être répété pour chaque objet de la liste. Les expressions contenues dans le modèle, telles que {{FirstName}}, {{LastName}}, {{Address.Street}} et {{Address.Number}}, indiquent les champs de la source de données qui doivent être insérés dans les cellules correspondantes du tableau.
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>Veuillez noter que l’implémentation actuelle ne prend en charge l’expression avant chaque directive que pour la liste suivante d’éléments HTML : DIV, OL, UL et TABLE.
Comme indiqué précédemment, la source de données peut être représentée dans les formats XML et JSON. Voici des exemples de ces deux sources de données :
XML Data Source
1 <Data>
2 <FirstName>John</FirstName>
3 <LastName>Doe</LastName>
4 <Address>
5 <City>Chicago</City>
6 <Street>Oakmound Drive</Street>
7 <Number>100</Number>
8 </Address>
9</Data>JSON Data Source
1{
2 "FirstName": "John",
3 "LastName": "Doe",
4 "Address": {
5 "City": "Chicago",
6 "Street": "Oakmound Drive",
7 "Number": "100"
8 }
9 }Si votre cas implique la création d’un modèle et la spécification de données à la volée, vous devez suivre quelques étapes :
data) pour la méthode convertTemplate(sourcePath, data, options, outputPath).sourcePath).options).sourcePath, data, options, outputPath) et passez-lui sourcePath, data, options, et outputPath. outputPath est un chemin pour l’enregistrement du fichier de modèle rempli de données. La méthode convertTemplate() remplace les expressions du modèle par les valeurs de la source de données, générant ainsi un document HTML rempli. 1// Populate an HTML template with structured JSON data using Java
2
3// Prepare a JSON data-source and save it to a file
4String data =
5 "{\n" +
6 " 'FirstName': 'John',\n" +
7 " 'LastName': 'Smith',\n" +
8 " 'Address': {\n" +
9 " 'City': 'Dallas',\n" +
10 " 'Street': 'Austin rd.',\n" +
11 " 'Number': '200'\n" +
12 " }\n" +
13 "}";
14try (java.io.FileWriter fileWriter = new java.io.FileWriter("data-source.json")) {
15 fileWriter.write(data);
16}
17
18// Prepare an HTML Template and save it to a file
19String template =
20 "<table border=1>\n" +
21 " <tr>\n" +
22 " <th>Person</th>\n" +
23 " <th>Address</th>\n" +
24 " </tr>\n" +
25 " <tr>\n" +
26 " <td>{{FirstName}} {{LastName}}</td>\n" +
27 " <td>{{Address.Street}} {{Address.Number}}, {{Address.City}}</td>\n" +
28 " </tr>\n" +
29 "</table>\n";
30try (java.io.FileWriter fileWriter = new java.io.FileWriter("template.html")) {
31 fileWriter.write(template);
32}
33
34// Convert Template to HTML
35com.aspose.html.converters.Converter.convertTemplate(
36 "template.html",
37 new com.aspose.html.converters.TemplateData("data-source.json"),
38 new com.aspose.html.loading.TemplateLoadOptions(), "document.html"
39);Il faut toujours valider le format de la source de données (XML/JSON) et s’assurer de la cohérence avec les marqueurs de modèles pour éviter les incohérences.
Utilisez
TemplateLoadOptions.NamesAreCaseSensitive pour contrôler la sensibilité à la casse lors de la liaison des données. Si la valeur est true, la correspondance est sensible à la casse ; si elle est false, la casse sera ignorée. La valeur par défaut est true. Mettre false simplifie la gestion des noms incohérents.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.