Transformer un XML en HTML à l'aide d'une feuille de style XSL - Cloud - 8.0

XML

Version
Cloud
8.0
Language
Français
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
Studio Talend
Content
Création et développement > Systèmes tiers > Composants XML
Gouvernance de données > Systèmes tiers > Composants XML
Qualité et préparation de données > Systèmes tiers > Composants XML
Last publication date
2024-02-21

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>