Menerapkan Template dalam Urutan Kebalikan dengan XSLT

Saat bekerja dengan data XML, Anda mungkin menemui skenario di mana Anda perlu memanipulasi urutan elemen yang ditampilkan. Sebuah kebutuhan umum adalah menampilkan konten node dalam urutan kebalikan. Posting blog ini akan membimbing Anda melalui proses pencapaian hal tersebut menggunakan XSLT (Ekstensible Stylesheet Language Transformations).

Memahami Masalah

Pertimbangkan struktur XML berikut:

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

Dalam contoh ini, Anda ingin menampilkan konten dari elemen <node> dalam urutan kebalikan, menghasilkan output: ayx. Ini adalah tugas tipikal yang dapat diselesaikan dengan XSLT dengan memanfaatkan apply-templates dan atribut pengurutan.

Solusi: Membalik Urutan Node

Untuk mencapai output yang diinginkan (yaitu, menampilkan node dalam urutan kebalikan), kita akan menggunakan elemen xsl:sort di dalam apply-templates. Berikut adalah cara mengimplementasikannya langkah demi langkah:

Langkah 1: Mencocokkan Template Root

Mulailah dengan mencocokkan tingkat root dari dokumen XML Anda. Di dalam template ini, Anda akan menerapkan template ke elemen-elemen <node> sambil menggunakan fungsi sort untuk membalik urutan.

<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="/">: Ini mencocokkan root dari dokumen XML.
  • <xsl:apply-templates select="root/node">: Instruksi ini memilih semua elemen <node> untuk diproses.
  • <xsl:sort select="position()" data-type="number" order="descending"/>: Ini mengurutkan node berdasarkan posisi mereka dalam urutan menurun, yang penting untuk menampilkannya dalam kebalikan.

Langkah 2: Mendefinisikan Template Node

Selanjutnya, Anda perlu template lain untuk menangani bagaimana setiap <node> diproses. Ini akan sederhana menampilkan nilai dari setiap elemen <node>.

<xsl:template match="node">
    <xsl:value-of select="."/>
</xsl:template>
  • <xsl:template match="node">: Template ini mencocokkan setiap elemen <node>.
  • <xsl:value-of select="."/>: Ini mengambil nilai string dari node saat ini dan menampilkannya.

Kode XSLT Lengkap

Menggabungkan kedua template di atas, Anda akan memiliki kode XSLT lengkap berikut:

<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>

Output

Setelah menerapkan kode XSLT ini pada XML yang diberikan, output yang dihasilkan akan menampilkan nilai node dalam urutan kebalikan dari kemunculannya:

ayx

Kesimpulan

Membalik urutan node XML menggunakan apply-templates dalam XSLT sangatlah sederhana setelah Anda memahami cara menggunakan operasi sort secara efektif. Pendekatan ini bermanfaat ketika Anda perlu memanipulasi presentasi data untuk laporan atau aplikasi web untuk meningkatkan pengalaman pengguna.

Dengan mengikuti langkah-langkah ini, Anda dapat dengan efisien mengontrol output dari data XML Anda menggunakan XSLT. Selamat coding!