Sobes.tech
Junior

Kas ir XSLT?

sobes.tech AI

Atbilde no AI

XSLT (eXtensible Stylesheet Language Transformations) ir valkājs XML dokumentu pārveidošanai. To izmanto, lai pārvērstu XML citā formātā, piemēram, HTML, citā XML vai vienkāršā tekstā, piemērojot XSLT stilā aprakstītās noteikumus.

Galvenās koncepcijas:

  • XSLT stilā: XML dokuments, kas satur pārveidošanas noteikumus.
  • Šabloni (Templates): galvenās noteikumu blokas. Tie atbilst sākotnējā XML elementiem vai atribūtiem un nosaka, kā tos pārveidot.
  • XPATH: vaicājumu valoda XML mezglu izvēlei. To izmanto XSLT, lai noteiktu, kurām XML daļām piemērot noteikumus.
  • XSLT procesors: programma, kas veic pārveidošanu, lasot sākotnējo XML un XSLT stilā, un ģenerējot rezultātu.

Java ir iebūvēta atbalsts XSLT, izmantojot JAXP (Java API for XML Processing).

Piemērs vienkāršai XML pārveidošanai uz HTML, izmantojot XSLT:

Sākotnējais XML:

<grāmatas>
  <grāmata id="1">
    <nosaukums>Meistars un Margarita</nosaukums>
    <autors>Bulgakovs M.</autors>
  </grāmata>
  <grāmata id="2">
    <nosaukums>Karš un miers</nosaukums>
    <autors>Tolstoj L.</autors>
  </grāmata>
</grāmatas>

XSLT stilā (piemēram, grāmata.xsl):

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/grāmatas">
    <html>
      <head>
        <title>Grāmatu saraksts</title>
      </head>
      <body>
        <h1>Grāmatu saraksts</h1>
        <ul>
          <xsl:apply-templates select="grāmata"/>
        </ul>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="grāmata">
    <li>
      <b><xsl:value-of select="nosaukums"/></b>, Autors: <xsl:value-of select="autors"/>
    </li>
  </xsl:template>
</xsl:stylesheet>

Java kods, kas veic pārveidošanu, izmantojot JAXP:

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

public class XSLTExample {

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

            // XSLT stilā ielāde
            Source xslt = new StreamSource(new File("grāmata.xsl"));
            Transformer transformer = factory.newTransformer(xslt);

            // Sākotnējā XML ielāde
            Source xml = new StreamSource(new File("grāmatas.xml"));

            // Izvades plūsmas definēšana
            Result result = new StreamResult(new File("output.html"));

            // Pārveidošanas veikšana
            transformer.transform(xml, result);

            System.out.println("Pārveidošana pabeigta. Rezultāts saglabāts output.html failā.");

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

XSLT plaši tiek izmantots tīmekļa izstrādē (HTML ģenerēšana no XML, lai parādītu), datu integrācijā un XML ziņojumu apstrādē.