XSLT‑Beispiel

Vollständiges Beispiel: Umwandlung von XML + XSLT nach HTML

Bereiten Sie zwei Dateien vor:

  1. students.xml: Original‑XML‑Dokument zur Speicherung von Schülerdaten
  2. transform.xsl: XSL‑Stylesheet zur Umwandlung von XML in eine HTML‑Seite
    Wenn der Browser students.xml lädt, wendet er automatisch die XSLT‑Regeln an und rendert die Webseite.

Verwendet die XML‑Datei die Kodierung ISO‑8859‑1 (westeuropäischer Zeichensatz), lassen sich nicht‑englische Texte unter Umständen nicht korrekt speichern, was direkt zu Zeichensalat führt. Passen Sie die Kodierung im Code einheitlich auf UTF‑8 an, um das Problem vollständig zu beseitigen.

students.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="transform.xsl"?>
<class>
    <student>
        <name>Tom</name>
        <age>12</age>
        <height>145</height>
    </student>
    <student>
        <name>Jack</name>
        <age>16</age>
        <height>175</height>
    </student>
    <student>
        <name>Smiths</name>
        <age>22</age>
        <height>245</height>
    </student>
</class>Code-Sprache: HTML, XML (xml)

Wichtige Hinweise:

  • <?xml-stylesheet ... ?>‑Verarbeitungsanweisung: weist den Browser an, transform.xsl zur Umwandlung des aktuellen XML‑Dokuments zu verwenden
  • encoding="UTF-8" unterstützt Zeichen aller Sprachen und verhindert Zeichensalat

transform.xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <html>
            <head>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
                <title>Student List</title>
            </head>
            <body>
                <h3>Student Name List</h3>
                <ul>
                    <!-- Durchlaufen aller class/student‑Knoten -->
                    <xsl:for-each select="class/student">
                        <li>
                            <xsl:value-of select="name"/>
                        </li>
                    </xsl:for-each>
                </ul>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>Code-Sprache: HTML, XML (xml)

Erklärung der zentralen Syntax

  1. <xsl:stylesheet>: XSLT‑Wurzelelement, zur Deklaration des Namensraums
  2. <xsl:template match="/">: trifft auf den XML‑Wurzelknoten zu, Einstiegspunkt der Umwandlung
  3. <xsl:for-each select="class/student">: durchläuft jeden einzelnen Schüler‑Knoten
  4. <xsl:value-of select="name"/>: extrahiert den Textinhalt des Knotens <name>

3. Ausführungsweise

  1. Legen Sie beide Dateienin demselben Ordner ab
  2. Öffnen Sie students.xml direkt im Webbrowser
  3. Die XSLT‑Engine führt die Umwandlung automatisch durch und erzeugt abschließend eine gerenderte HTML‑Listen‑Seite
Auftreten von Zeichensalat
  1. Im XML‑Kopf ist encoding="ISO‑8859‑1" angegeben, dieser Zeichensatz unterstützt keine nicht‑englischen Zeichen;
  2. Die im HTML‑Meta‑Tag angegebene Kodierung stimmt nicht mit der tatsächlichen Dateikodierung überein;
  3. Beim Speichern der Datei verwendet der Editor nicht die UTF‑8‑Kodierung;

Anzeige vollständiger Schülerdaten

Wenn Sie Name, Alter und Körpergröße gleichzeitig anzeigen möchten, ersetzen Sie den Schleifenbereich:

<xsl:for-each select="class/student">
    <li>
        Name: <xsl:value-of select="name"/> ,
        Alter: <xsl:value-of select="age"/> ,
        Körpergröße: <xsl:value-of select="height"/>
    </li>
</xsl:for-each>Code-Sprache: HTML, XML (xml)

XSLT‑Beispiel

Previous:
Next:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert