Sobes.tech
Junior

Mis on XSLT?

sobes.tech AI

Vastus AI-lt

XSLT (eXtensible Stylesheet Language Transformations) on keel XML-dokumentide teisendamiseks. Seda kasutatakse XML-i teisendamiseks teisteks formaatideks, näiteks HTML-ks, teiseks XML-ks või lihttekstiks, rakendades XSLT stiililehel kirjeldatud reegleid.

Peamised kontseptsioonid:

  • XSLT stiilileht: XML-dokument, mis sisaldab teisendusreegleid.
  • Mallid (Templates): Põhireeglite plokid. Nad vastavad algse XML-i elementidele või atribuutidele ning määravad, kuidas neid teisendada.
  • XPATH: Päringukeel XML-i sõlmede valimiseks. Seda kasutatakse XSLT-s, et määrata, milliste XML-osadele reegleid rakendada.
  • XSLT protsessor: Programm, mis teostab teisendust, lugedes algse XML-i ja XSLT stiililehe ning genereerides tulemuse.

Java-l on sisseehitatud tugi XSLT jaoks JAXP (Java API for XML Processing) kaudu.

Näide lihtsast XML-i teisendamisest HTML-ks XSLT abil:

Algne XML:

<raamatud>
  <raamat id="1">
    <pealkiri>Meister ja Margarita</pealkiri>
    <autor>Bulgakov M.</autor>
  </raamat>
  <raamat id="2">
    <pealkiri>Sõda ja rahu</pealkiri>
    <autor>Tolstoj L.</autor>
  </raamat>
</raamatud>

XSLT stiilileht (näiteks, raamat.xsl):

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/raamatud">
    <html>
      <head>
        <title>Raamatute nimekiri</title>
      </head>
      <body>
        <h1>Raamatute nimekiri</h1>
        <ul>
          <xsl:apply-templates select="raamat"/>
        </ul>
      </body>
    </html>
  </xsl:template>

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

Java kood, mis teostab teisenduse JAXP kasutades:

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

public class XSLTExample {

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

            // XSLT stiililehe laadimine
            Source xslt = new StreamSource(new File("raamat.xsl"));
            Transformer transformer = factory.newTransformer(xslt);

            // Algse XML laadimine
            Source xml = new StreamSource(new File("raamatud.xml"));

            // Väljundi voolu määratlemine
            Result result = new StreamResult(new File("output.html"));

            // Teisenduse teostamine
            transformer.transform(xml, result);

            System.out.println("Teisendus lõpetatud. Tulemuseks on output.html fail.");

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

XSLT on laialdaselt kasutusel veebiarenduses (HTML genereerimine XML-ist), andmete integreerimisel ja XML-sõnumite töötlemisel.