Transforming XML into HTML using an XSL stylesheet
This scenario describes a two-component Job that converts XML data into an HTML document using an XSL stylesheet. It also defines a transformation parameter of the XSL stylesheet to change the background color of the header of the HTML document created.
For more technologies supported by Talend, see Talend components.
This scenario uses two input files: customers.xml and customers.xsl.
The content of the customers.xml file is as
follows.
<?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>
The content of the customer.xsl file is as
follows.
<?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>