Transforming XML into HTML using an XSL stylesheet - Cloud - 8.0

XML

Version
Cloud
8.0
Language
English (United States)
Product
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
Module
Talend Studio
Content
Data Governance > Third-party systems > XML components
Data Quality and Preparation > Third-party systems > XML components
Design and Development > Third-party systems > XML components

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>