XSLT - Auf dem Client

Wenn Ihr Browser XSLT unterstützt, kann er in Ihrem Browser verwendet werden, um Dokumente in XHTML zu konvertieren.

JavaScript-Lösung

In den vorherigen Kapiteln haben wir Ihnen gezeigt, wie Sie mit XSLT eine XML-Datei in XHTML konvertieren können. Wir haben dies durch die Hinzufügung eines XSL-Stilblatts zur XML-Datei und die Konvertierung durch den Browser erreicht.

Obwohl diese Methode gut funktioniert, ist die Einbeziehung von Stilblättern in XML-Dateien nicht immer zufriedenstellend (z.B. funktioniert diese Methode nicht in Browsern, die XSLT nicht erkennen).

Ein allgemeinerer Ansatz ist es, die Transformation mit JavaScript durchzuführen.

Durch die Verwendung von JavaScript können wir:

  • Führen Sie Browser-Prüfungen durch
  • Verwenden Sie verschiedene Stilblätter nach Bedarf des Browsers und des Benutzers

Das ist der Reiz von XSLT! Eines der Designziele von XSLT ist es, die Konvertierung von einem Format in ein anderes zu ermöglichen, gleichzeitig verschiedene Arten von Browsern und verschiedene Benutzeranforderungen zu unterstützen.

Die XSLT-Transformation wird sicherlich eine der Hauptaufgaben sein, die zukünftige Browser ausführen werden, und wir werden auch ein Wachstum in bestimmten Browsermärkten sehen (Blindtext, Netzwerkdrucker, Hörgeräte, usw.).

XML-Datei und XSL-Datei

Sehen Sie sich das in den vorherigen Kapiteln gezeigte XML-Dokument an:

<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
  <cd>
    <title>Empire Burlesque</title>
    <artist>Bob Dylan</artist>
    <country>USA</country>
    <company>Columbia</company>
    <price>10,90</price>
    <year>1985</year>
  </cd>
.
.
.
</catalog>

Betrachten Sie diese XML-DateiBitte sehen Sie sich an, wie es im IE funktioniert.

sowie die beiliegenden XSL-Stilblätter:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <html>
  <body>
    <h2>Meine CD-Sammlung</h2> 
    <table border="1">
      <tr bgcolor="#9acd32">
        <th align="left">Titel</th> 
        <th align="left">Künstler</th> 
      </tr>
      <xsl:for-each select="catalog/cd">
      <tr>
        <td><xsl:value-of select="title" /></td>
        <td><xsl:value-of select="artist" /></td>
      </tr>
      </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

Betrachten Sie dieses XSL-DokumentBitte sehen Sie sich an, wie es im IE funktioniert.

Bitte beachten Sie, dass diese XML-Datei keine Referenz auf das XSL-Dokument enthält.

Wichtig:Dies bedeutet, dass die XML-Datei mit mehreren verschiedenen XSL-Stilblättern transformiert werden kann.

Konvertieren Sie XML in XHTML im Browser

Dies ist der Quellcode, um XML-Dateien auf dem Client in XHTML zu konvertieren:

<html>
<body>
<script type="text/javascript">
// Load XML 
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("cdcatalog.xml")
// Load XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("cdcatalog.xsl")
// Transform
document.write(xml.transformNode(xsl))
</script>
</body>
</html>

Hinweis:Wenn Sie nicht wissen, wie man JavaScript schreibt, lernen Sie unserJavaScript-Tutorial》。

Der erste Abschnitt erstellt eine Instanz des XML-Parsers von Microsoft und lädt die XML-Datei in den Speicher. Der zweite Abschnitt erstellt eine weitere Instanz des Parsers und lädt diese XSL-Datei in den Speicher. Die letzte Zeile verwendet das XSL-Dokument, um das XML-Dokument zu transformieren und das Ergebnis im Browser als XHTML anzuzeigen. Die Aufgabe ist erledigt!

请看它在 IE 中如何工作Bitte sehen Sie sich an, wie es im IE funktioniert.