Transformer un XML en HTML à l'aide d'une feuille de style XSL
Ce scénario décrit un Job à deux composants appliquant une feuille de style XSL à un fichier XML et génère un fichier HTML en sortie. Il permet également de définir un paramètre de transformation pour la feuille de style XSL afin de changer la couleur de l'arrière-plan de l'en-tête dans le document HTML créé en sortie.
Pour plus de technologies supportées par Talend, consultez Composants Talend.
Ce scénario utilise deux fichiers d'entrée : customers.xml et customers.xsl.
Le contenu du fichier customers.xml est le suivant.
<?xml version="1.0" encoding="UTF-8"?>
<Customers>
<Customer RegisterTime="2001-01-17 06:26:40.000">
<Name>
<id>1</id>
<CustomerName>Griffith Paving and Sealcoatin</CustomerName>
</Name>
<Address>
<CustomerAddress>talend@apres91</CustomerAddress>
<idState>2</idState>
</Address>
<Revenue>
<Sum1>67852</Sum1>
</Revenue>
</Customer>
<Customer RegisterTime="2002-06-07 09:40:00.000">
<Name>
<id>2</id>
<CustomerName>Bill's Dive Shop</CustomerName>
</Name>
<Address>
<CustomerAddress>511 Maple Ave. Apt. 1B</CustomerAddress>
<idState>3</idState>
</Address>
<Revenue>
<Sum1>88792</Sum1>
</Revenue>
</Customer>
<Customer RegisterTime="1987-02-23 17:33:20.000">
<Name>
<id>3</id>
<CustomerName>Glenn Oaks Office Supplies</CustomerName>
</Name>
<Address>
<CustomerAddress>1859 Green Bay Rd.</CustomerAddress>
<idState>2</idState>
</Address>
<Revenue>
<Sum1>1225.</Sum1>
</Revenue>
</Customer>
<Customer RegisterTime="1992-04-28 23:26:40.000">
<Name>
<id>4</id>
<CustomerName>DBN Bank</CustomerName>
</Name>
<Address>
<CustomerAddress>456 Grossman Ln.</CustomerAddress>
<idState>3</idState>
</Address>
<Revenue>
<Sum1>64493</Sum1>
</Revenue>
</Customer>
<Customer RegisterTime="1999-04-26 23:26:44.000">
<Name>
<id>5</id>
<CustomerName>Facelift Kitchen and Bath</CustomerName>
</Name>
<Address>
<CustomerAddress>220 Vine Ave.</CustomerAddress>
<idState>10</idState>
</Address>
<Revenue>
<Sum1>888888</Sum1>
</Revenue>
</Customer>
</Customers>
Le contenu du fichier customer.xsl est le suivant.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:param name="bgcolor"/>
<xsl:template match="/">
<html>
<body>
<h2>Customers</h2>
<table border="1">
<tr bgcolor="{$bgcolor}">
<th>ID</th>
<th>Name</th>
<th>Address</th>
</tr>
<xsl:for-each select="Customers/Customer">
<tr>
<td><xsl:value-of select="Name/id"/></td>
<td><xsl:value-of select="Name/CustomerName"/></td>
<td><xsl:value-of select="Address/CustomerAddress"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>