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

XML

Version
Cloud
8.0
Language
English
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 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
Last publication date
2024-02-20

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>