Bagikan melalui


Panduan: Menggunakan hierarki XSLT

Alat Hierarki XSLT menyederhanakan banyak tugas pengembangan XML. Lembar gaya XSLT sering menggunakan instruksi includes dan imports. Kompilasi dimulai dari lembar gaya utama, tetapi ketika Anda melihat kesalahan sebagai akibat dari mengompilasi lembar gaya XSLT, kesalahan mungkin berasal dari sumber yang berbeda dari lembar gaya utama. Memperbaiki kesalahan atau mengedit lembar gaya mungkin memerlukan akses ke lembar gaya yang disertakan atau diimpor. Menelusuri lembar gaya di debugger dapat membuka lembar gaya yang disertakan dan diimpor, dan Anda mungkin ingin menambahkan titik henti di beberapa titik dalam satu atau beberapa lembar gaya yang disertakan.

Skenario lain di mana alat Hierarki XSLT dapat berguna adalah menempatkan titik henti pada aturan templat bawaan. Aturan templat adalah templat khusus yang dihasilkan untuk setiap mode lembar gaya dan dipanggil oleh ketika tidak ada templat lain yang cocok dengan node xsl:apply-templates. Untuk menerapkan penelusuran kesalahan dalam aturan templat bawaan, debugger XSLT menghasilkan file dengan aturan di folder sementara dan mengompilasinya bersama dengan lembar gaya utama. Tanpa melangkah ke kode dari beberapa xsl:apply-template, mungkin sulit untuk menemukan lembar gaya yang telah disertakan dalam lembar gaya utama atau untuk menemukan dan membuka lembar gaya dengan aturan templat bawaan.

Contoh dalam topik ini menunjukkan penelusuran kesalahan dalam lembar gaya yang direferensikan.

Untuk men-debug dalam lembar gaya yang direferensikan

  1. Buka dokumen XML di Visual Studio. Contoh ini menggunakan dokumen berikut:

    <?xml version="1.0" encoding="utf-8"?>
    <?xml-stylesheet type="text/xsl" href="xslinclude.xsl"?>
    <COLLECTION>
      <BOOK>
        <TITLE>Lover Birds</TITLE>
        <AUTHOR>Cynthia Randall</AUTHOR>
        <PUBLISHER>Lucerne Publishing</PUBLISHER>
      </BOOK>
      <BOOK>
        <TITLE>The Sundered Grail</TITLE>
        <AUTHOR>Eva Corets</AUTHOR>
        <PUBLISHER>Lucerne Publishing</PUBLISHER>
      </BOOK>
      <BOOK>
        <TITLE>Splish Splash</TITLE>
        <AUTHOR>Paula Thurman</AUTHOR>
        <PUBLISHER>Scootney</PUBLISHER>
      </BOOK>
    </COLLECTION>
    
  2. Tambahkan xslincludefile.xsl berikut:

    <?xml version='1.0'?>
    <xsl:stylesheet version="1.0"
          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
          xml:space="preserve">
    
    <xsl:template match="TITLE">
       Title - <xsl:value-of select="."/><BR/>
    </xsl:template>
    
    <xsl:template match="AUTHOR">
       Author - <xsl:value-of select="."/><BR/>
    </xsl:template>
    
    <xsl:template match="PUBLISHER">
       Publisher - <xsl:value-of select="."/><BR/><!-- removed second <BR/> -->
    </xsl:template>
    
    </xsl:stylesheet>
    
  3. Tambahkan file xslinclude.xsl berikut:

    <?xml version='1.0'?>
    <xsl:stylesheet version="1.0"
          xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    
      <xsl:output method="xml" omit-xml-declaration="yes"/>
    
      <xsl:template match="/">
        <xsl:for-each select="COLLECTION/BOOK">
          <xsl:apply-templates select="TITLE"/>
          <xsl:apply-templates select="AUTHOR"/>
          <xsl:apply-templates select="PUBLISHER"/>
          <BR/>
          <!-- add this -->
        </xsl:for-each>
      </xsl:template>
    
      <!-- The following template rule will not be called,
      because the related template in the including stylesheet
      is called. If we move this template so that
      it follows the xsl:include instruction, this one
      will be called instead.-->
      <xsl:template match="TITLE">
        <DIV STYLE="color:blue">
          Title: <xsl:value-of select="."/>
        </DIV>
      </xsl:template>
    
      <xsl:include href="xslincludefile.xsl" />
    </xsl:stylesheet>
    
  4. Tambahkan titik henti pada instruksi <xsl:include href="xslincludefile.xsl" />.

  5. Mulai penelusuran kesalahan.

  6. Saat debugger berhenti pada instruksi <xsl:include href="xslincludefile.xsl" />, tekan tombol Masuk. Penelusuran kesalahan dapat dilanjutkan dalam lembar gaya yang direferensikan. Hierarki akan terlihat dan perancangnya menampilkan jalur yang tepat.