Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Dieser Artikel beschreibt, wie Sie Aspose.HTML for Java verwenden, um ein HTML-Dokument auf der Grundlage einer Vorlage zu erstellen und es mit Daten aus verschiedenen Quellen, wie XML oder JSON, zu füllen. Mit der Syntax der Inline-Ausdrücke können Sie Datenquellen effizient mit Ihrer HTML-Vorlage abgleichen und Inhalte dynamisch generieren.
Aspose.HTML for Java bietet eine Reihe von convertTemplate() Methoden, die verwendet werden, um eine HTML-Vorlage in ein HTML-Dokument zu konvertieren. Die Methoden nehmen mehrere Parameter entgegen (z.B. Pfade zum Template und zur Datenquelle, ein Objekt von TemplateLoadOptions und einen Pfad zum HTML-Ergebnis) und geben das ausgefüllte HTML-Dokument zurück.
Eine HTML-Vorlage ist eine Standard-HTML-Datei, die einige spezielle Inline-Ausdrücke enthält. Diese Ausdrücke verwenden doppelte geschweifte Klammern {{ }}, um Daten aus der Eingabedatenquelle auf bestimmte Teile des HTML-Dokuments abzubilden. Bei der Verarbeitung werden diese Schablonenmarkierungen durch entsprechende Datenwerte ersetzt, wobei die nachstehenden Regeln gelten.
Nachfolgend finden Sie eine Liste der unterstützten Syntax für Inline-Ausdrücke.
Der Datenbindungsausdruck wird verwendet, um Werte von Kontrollelementen auf der Grundlage der in der Datenquelle enthaltenen Informationen festzulegen.
Im Folgenden wird die grundlegende Syntax des Datenbindungsausdrucks beschrieben:
{{ data-binding expression }}
In der folgenden Demo wird gezeigt, wie der Datenbindungsausdruck verwendet wird, um Informationen aus der XML-Datenquelle zu erhalten.
XML-Datenquelle
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>Der Datenbindungsausdruck in der HTML-Seitenvorlage:
HTML-Vorlage
Diese HTML-Vorlage demonstriert die Verwendung von Inline-Ausdrücken für die Datenbindung. Sie enthält eine Tabelle mit zwei Spalten: “Person” und “Address” Die Spalte “Person” zeigt dynamisch Daten für {{FirstName}} und {{LastName}} aus der Datenquelle an, während die Spalte “Address” {{Address.Street}}, {{Address.Number}} und {{Address.City}} anzeigt. Inline-Ausdrücke werden mit geschweiften Klammern definiert.
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>Der Ausdruck der foreach-Direktive wird verwendet, um in Kombination mit dem Datenbindungsausdruck durch die Liste der Elemente zu iterieren.
Die folgende Demo zeigt, wie man alle Personen aus der Datenquelle holt und eine Vorlage ausfüllt:
XML-Datenquelle
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>Der Ausdruck foreach directive in der HTML-Seitenvorlage:
HTML-Vorlage
Das Attribut “data_merge” gibt an, dass die Datenquelle eine Liste von Objekten ist und die Tabelle für jedes Objekt in der Liste wiederholt werden soll. Die Ausdrücke innerhalb der Vorlage, wie {{FirstName}}, {{LastName}}, {{Address.Street}} und {{Address.Number}}, geben die Felder der Datenquelle an, die in die entsprechenden Zellen der Tabelle eingefügt werden sollen.
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>Bitte beachten Sie, dass die aktuelle Implementierung den Ausdruck foreach directive nur für die folgende Liste von HTML-Elementen unterstützt: DIV, OL, UL und TABLE.
Wie bereits erwähnt, kann die Datenquelle in den Formaten XML und JSON dargestellt werden. Im Folgenden finden Sie Beispiele für beide Datenquellen:
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 }Wenn Sie in Ihrem Fall eine Vorlage erstellen und Daten im laufenden Betrieb angeben wollen, müssen Sie einige Schritte beachten:
data) für die Methode convertTemplate(sourcePath, data, options, outputPath).sourcePath).options).sourcePath, data, options, outputPath) auf und übergeben Sie dafür sourcePath, data, options und outputPath. outputPath ist ein Pfad zum Speichern der mit Daten gefüllten Vorlagendatei. Die Methode convertTemplate() ersetzt die Ausdrücke in der Vorlage durch Werte aus der Datenquelle und erzeugt ein ausgefülltes HTML-Dokument. 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);Überprüfen Sie immer das Format der Datenquelle (XML/JSON) und stellen Sie die Konsistenz mit den Vorlagenmarkierungen sicher, um Fehlanpassungen zu vermeiden.
Verwenden Sie
TemplateLoadOptions.NamesAreCaseSensitive, um die Groß- und Kleinschreibung während der Datenbindung zu steuern. Wenn der Wert true ist, wird beim Abgleich die Groß- und Kleinschreibung beachtet; wenn er false ist, wird die Groß- und Kleinschreibung ignoriert. Der Standardwert ist true. Die Einstellung false vereinfacht die Handhabung inkonsistenter Benennungen.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.