Sobes.tech
Junior

Ce este XSLT?

sobes.tech AI

Răspuns de la AI

XSLT (eXtensible Stylesheet Language Transformations) — un limbaj pentru transformarea documentelor XML. Este utilizat pentru a converti XML în alte formate, cum ar fi HTML, alt XML sau text simplu, aplicând reguli descrise într-un fișier de stil XSLT.

Concepte principale:

  • Fișier de stil XSLT: Document XML care conține regulile de transformare.
  • Șabloane (Templates): Blocuri principale de reguli. Se potrivesc cu elemente sau atribute din XML-ul sursă și determină cum să fie transformate.
  • XPATH: Limbaj de interogare pentru selectarea nodurilor dintr-un document XML. Este folosit în XSLT pentru a determina părțile XML asupra cărora se aplică regulile.
  • Procesor XSLT: Program care efectuează transformarea, citind XML-ul sursă și fișierul de stil XSLT, și generând rezultatul.

Java are suport încorporat pentru XSLT prin JAXP (API Java pentru procesarea XML).

Exemplu de transformare simplă de XML în HTML folosind XSLT:

XML sursă:

<carți>
  <carte id="1">
    <titlu>Maestrul și Margarita</titlu>
    <autor>Bulgakov M.</autor>
  </carte>
  <carte id="2">
    <titlu>Război și pace</titlu>
    <autor>Tolstoi L.</autor>
  </carte>
</carți>

Fișier de stil XSLT (de exemplu, carte.xsl):

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/carți">
    <html>
      <head>
        <title>Lista de cărți</title>
      </head>
      <body>
        <h1>Lista de cărți</h1>
        <ul>
          <xsl:apply-templates select="carte"/>
        </ul>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="carte">
    <li>
      <b><xsl:value-of select="titlu"/></b>, Autor: <xsl:value-of select="autor"/>
    </li>
  </xsl:template>
</xsl:stylesheet>

Cod Java pentru executarea transformării cu JAXP:

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

public class XSLTExample {

    public static void main(String[] args) {
        try {
            // Crează un TransformerFactory
            TransformerFactory factory = TransformerFactory.newInstance();

            // Încarcă fișierul XSLT
            Source xslt = new StreamSource(new File("carte.xsl"));
            Transformer transformer = factory.newTransformer(xslt);

            // Încarcă XML-ul sursă
            Source xml = new StreamSource(new File("carți.xml"));

            // Definește fluxul de ieșire
            Result result = new StreamResult(new File("output.html"));

            // Execută transformarea
            transformer.transform(xml, result);

            System.out.println("Transformare finalizată. Rezultatul a fost salvat în output.html");

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

XSLT este utilizat pe scară largă în dezvoltarea web (generarea de HTML din XML pentru afișare), integrarea datelor și procesarea mesajelor XML.