Sobes.tech
Junior

XSLT nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

XSLT (Genişletilebilir Stil Sayfası Dili Dönüşümleri) — XML belgelerinin dönüşümü için kullanılan bir dildir. XML'i HTML, başka bir XML veya basit metin gibi diğer biçimlere dönüştürmek için kullanılır ve XSLT stil sayfasında tanımlanan kuralları uygular.

Ana kavramlar:

  • XSLT stil sayfası: Dönüşüm kurallarını içeren XML belgesi.
  • Şablonlar (Templates): Temel kurgu bloklarıdır. Kaynak XML'deki öğeler veya özniteliklerle eşleşir ve nasıl dönüştürüleceklerini belirler.
  • XPATH: XML belgesinde düğümleri seçmek için sorgu dilidir. XSLT'de, kuralların hangi XML bölümlerine uygulanacağını belirlemek için kullanılır.
  • XSLT İşlemcisi: Kaynak XML ve XSLT stil sayfasını okuyarak dönüşümü gerçekleştiren programdır ve sonucu üretir.

Java, JAXP (Java API for XML Processing) aracılığıyla yerleşik XSLT desteğine sahiptir.

XML'den HTML'ye basit bir XSLT dönüşüm örneği:

Kaynak XML:

<kitaplar>
  <kitap id="1">
    <başlık>Usta ve Margarita</başlık>
    <yazar>Bulgakov M.</yazar>
  </kitap>
  <kitap id="2">
    <başlık>Savaş ve Barış</başlık>
    <yazar>Tolstoy L.</yazar>
  </kitap>
</kitaplar>

XSLT stil sayfası (örneğin, kitap.xsl):

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/kitaplar">
    <html>
      <head>
        <title>Kitap Listesi</title>
      </head>
      <body>
        <h1>Kitap Listesi</h1>
        <ul>
          <xsl:apply-templates select="kitap"/>
        </ul>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="kitap">
    <li>
      <b><xsl:value-of select="başlık"/></b>, Yazar: <xsl:value-of select="yazar"/>
    </li>
  </xsl:template>
</xsl:stylesheet>

Java kodu ile JAXP kullanarak dönüşüm:

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

public class XSLTExample {

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

            // XSLT stil sayfasını yükle
            Source xslt = new StreamSource(new File("kitap.xsl"));
            Transformer transformer = factory.newTransformer(xslt);

            // Kaynak XML'i yükle
            Source xml = new StreamSource(new File("kitaplar.xml"));

            // Çıkış akışını belirle
            Result result = new StreamResult(new File("output.html"));

            // Dönüşümü gerçekleştir
            transformer.transform(xml, result);

            System.out.println("Dönüşüm tamamlandı. Sonuç output.html dosyasına kaydedildi.");

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

XSLT, web geliştirmede (XML'den HTML üretimi ve görüntüleme için), veri entegrasyonunda ve XML mesajlarının işlenmesinde yaygın olarak kullanılır.