XSLT ile Ters Sırada Şablon Uygulamak

XML verileri ile çalışırken, elemanların hangi sırayla görüntüleneceğini manipüle etmeniz gereken senaryolarla karşılaşabilirsiniz. Yaygın bir gereksinim, düğümlerin içeriklerini ters sırada görüntülemektir. Bu blog yazısı, bunu XSLT (Genişletilebilir Stil Sayfası Dil Dönüşümleri) kullanarak nasıl gerçekleştireceğinizi adım adım gösterecektir.

Problemin Anlaşılması

Aşağıdaki XML yapısını ele alalım:

<root>
    <node>x</node>
    <node>y</node>
    <node>a</node>
</root>

Bu örnekte, <node> elemanlarının içeriklerini ters sırada yani ayx şeklinde görüntülemek istiyorsunuz. Bu, apply-templates ve sıralama özelliklerini kullanarak XSLT ile gerçekleştirilebilecek tipik bir görevdir.

Çözüm: Düğüm Sırasını Tersine Çevirme

İstenilen çıktıyı elde etmek için (yani düğümleri ters sırada görüntülemek), apply-templates içinde xsl:sort elemanını kullanacağız. İşte bunu aşama aşama uygulamanız için gerekli adımlar:

Adım 1: Kök Şablonu Eşleştirme

XML belgenizin kök seviyesini eşleştirerek başlayın. Bu şablon içinde, <node> elemanlarına şablon uygulayacak ve sıralama fonksiyonunu kullanarak sırayı tersine çevireceksiniz.

<xsl:template match="/">
    <xsl:apply-templates select="root/node">
        <xsl:sort select="position()" data-type="number" order="descending"/>
    </xsl:apply-templates>
</xsl:template>
  • <xsl:template match="/">: Bu, XML belgesinin kökünü eşleştirir.
  • <xsl:apply-templates select="root/node">: Bu direktif, işlenmek üzere tüm <node> elemanlarını seçer.
  • <xsl:sort select="position()" data-type="number" order="descending"/>: Bu, düğümleri, görünme sırasına göre azalan sırada sıralar; bu, onları ters yönde göstermek için kritik öneme sahiptir.

Adım 2: Düğüm Şablonunu Tanımlama

Daha sonra, her bir <node>‘nin nasıl işleneceğini ele almak için başka bir şablona ihtiyacınız var. Bu, her <node> elemanının değerini basitçe çıkartacaktır.

<xsl:template match="node">
    <xsl:value-of select="."/>
</xsl:template>
  • <xsl:template match="node">: Bu şablon, her bir <node> elemanını eşleştirir.
  • <xsl:value-of select="."/>: Bu, mevcut düğümden string değerini alır ve görüntüler.

Tam XSLT Kodu

İki şablonu birleştirerek aşağıdaki tamamlayıcı XSLT kodunu elde edersiniz:

<xsl:template match="/">
    <xsl:apply-templates select="root/node">
        <xsl:sort select="position()" data-type="number" order="descending"/>
    </xsl:apply-templates>
</xsl:template>

<xsl:template match="node">
    <xsl:value-of select="."/>
</xsl:template>

Çıktı

Bu XSLT kodunu sağlanan XML üzerinde uyguladıktan sonra, oluşan çıktıda düğüm değerleri göründükleri sıranın tersine sıralanmış olarak görüntülenecektir:

ayx

Sonuç

XSLT’de apply-templates kullanarak XML düğümlerinin sırasını tersine çevirmek, sort işlemini etkili bir şekilde nasıl kullanacağınızı anladıktan sonra oldukça basittir. Bu yaklaşım, raporlar veya web uygulamaları için veri sunumunu manipüle etmek gerektiğinde kullanıcı deneyimini artırmak için faydalıdır.

Bu adımları takip ederek, XML verilerinizin çıktısını XSLT ile etkili bir şekilde kontrol edebilirsiniz. İyi kodlamalar!