Sobes.tech
Junior

Qu'est-ce que XSLT?

sobes.tech IA

Réponse de l'IA

XSLT (eXtensible Stylesheet Language Transformations) — langage de transformation de documents XML. Il est utilisé pour convertir XML en d’autres formats, comme HTML, un autre XML ou du texte simple, en appliquant des règles décrites dans une feuille de style XSLT.

Concepts principaux:

  • Feuille de style XSLT: Document XML contenant les règles de transformation.
  • Templates (Modèles): Blocs principaux de règles. Correspondent à des éléments ou attributs du XML source et déterminent comment les transformer.
  • XPATH: Langage de requête pour sélectionner des nœuds dans un document XML. Utilisé dans XSLT pour déterminer quelles parties du XML appliquer les règles.
  • Processeur XSLT: Programme qui effectue la transformation, en lisant le XML source et la feuille de style XSLT, et en générant le résultat.

Java dispose d’un support intégré pour XSLT via JAXP (API Java pour le traitement XML).

Exemple de transformation simple de XML en HTML avec XSLT:

XML source:

<livres>
  <livre id="1">
    <titre>Le Maître et Margarita</titre>
    <auteur>Bulgakov M.</auteur>
  </livre>
  <livre id="2">
    <titre>Guerre et Paix</titre>
    <auteur>Tolstoï L.</auteur>
  </livre>
</livres>

Feuille de style XSLT (par exemple, livre.xsl):

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/livres">
    <html>
      <head>
        <title>Liste des livres</title>
      </head>
      <body>
        <h1>Liste des livres</h1>
        <ul>
          <xsl:apply-templates select="livre"/>
        </ul>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="livre">
    <li>
      <b><xsl:value-of select="titre"/></b>, Auteur: <xsl:value-of select="auteur"/>
    </li>
  </xsl:template>
</xsl:stylesheet>

Code Java pour effectuer la transformation avec JAXP:

import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import java.io.*;

public class XSLTExample {

    public static void main(String[] args) {
        try {
            // Créer TransformerFactory
            TransformerFactory factory = TransformerFactory.newInstance();

            // Charger la feuille de style XSLT
            Source xslt = new StreamSource(new File("livre.xsl"));
            Transformer transformer = factory.newTransformer(xslt);

            // Charger le XML source
            Source xml = new StreamSource(new File("livres.xml"));

            // Définir le flux de sortie
            Result result = new StreamResult(new File("output.html"));

            // Effectuer la transformation
            transformer.transform(xml, result);

            System.out.println("Transformation terminée. Résultat enregistré dans output.html");

        } catch (TransformerConfigurationException e) {
            e.printStackTrace();
        } catch (TransformerException e) {
            e.printStackTrace();
        }
    }
}

XSLT est largement utilisé dans le développement web (génération de HTML à partir de XML pour l’affichage), l’intégration de données et le traitement de messages XML.