Sobes.tech
Junior

Kas yra XSLT?

sobes.tech AI

Atsakymas iš AI

XSLT (eXtensible Stylesheet Language Transformations) — tai XML dokumentų transformavimo kalba. Ji naudojama XML konvertavimui į kitus formatus, pavyzdžiui, HTML, kitą XML ar paprastą tekstą, taikant XSLT stiliaus lapo aprašytus taisykles.

Pagrindinės sąvokos:

  • XSLT stiliaus lapas: XML dokumentas, kuriame yra transformavimo taisyklės.
  • Šablonai (Templates): pagrindiniai taisyklių blokai. Jie atitinka pirminio XML elementus ar atributus ir nurodo, kaip juos transformuoti.
  • XPATH: užklausų kalba XML mazgų pasirinkimui. Naudojama XSLT, norint nustatyti, kuriems XML dalims taikyti taisykles.
  • XSLT procesorius: programa, kuri vykdo transformaciją, skaito pirminį XML ir XSLT stiliaus lapą, ir generuoja rezultatą.

Java turi įmontuotą XSLT palaikymą per JAXP (Java API for XML Processing).

Pavyzdys paprasto XML transformavimo į HTML naudojant XSLT:

Pirminis XML:

<knygos>
  <knyga id="1">
    <pavadinimas>Meistras ir Margarita</pavadinimas>
    <autorius>Bulgakov M.</autorius>
  </knyga>
  <knyga id="2">
    <pavadinimas>Karo ir taikos</pavadinimas>
    <autorius>Tolstoj L.</autorius>
  </knyga>
</knygos>

XSLT stiliaus lapas (pavyzdžiui, knyga.xsl):

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/knygos">
    <html>
      <head>
        <title>Knygų sąrašas</title>
      </head>
      <body>
        <h1>Knygų sąrašas</h1>
        <ul>
          <xsl:apply-templates select="knyga"/>
        </ul>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="knyga">
    <li>
      <b><xsl:value-of select="pavadinimas"/></b>, Autorius: <xsl:value-of select="autorius"/>
    </li>
  </xsl:template>
</xsl:stylesheet>

Java kodas, atliekantis transformaciją naudojant JAXP:

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

public class XSLTExample {

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

            // XSLT stiliaus lapo įkėlimas
            Source xslt = new StreamSource(new File("knyga.xsl"));
            Transformer transformer = factory.newTransformer(xslt);

            // Pirminio XML įkėlimas
            Source xml = new StreamSource(new File("knygos.xml"));

            // Išvesties srauto nustatymas
            Result result = new StreamResult(new File("output.html"));

            // Transformacijos vykdymas
            transformer.transform(xml, result);

            System.out.println("Transformacija baigta. Rezultatas išsaugotas output.html faile.");

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

XSLT plačiai naudojama interneto kūrime (HTML generavimas iš XML, kad būtų rodomas), duomenų integracijoje ir XML pranešimų apdorojime.