Latest web development tutorials

XSLT auf dem Client

Falls Ihr Browser XSLT unterstützt, dann wird der Browser, die verwendet werden können Dokumente in XHTML zu konvertieren.


JavaScript-Lösung

Im vorigen Kapitel haben wir gelernt, wie man XSLT verwenden, um ein XML-Dokument in XHTML zu transformieren. Wir tun dies durch die folgenden Möglichkeiten: hinzugefügt XSL-Stylesheet auf die XML-Datei, und schließen Sie die Konvertierung über einen Browser.

Auch wenn die Wirkung dieser Methode ist sehr gut, sind die Stylesheet-Referenzen nicht immer zufrieden stellend (zum Beispiel in der XSLT-Browser nicht diesen Ansatz erkennen wird nicht funktionieren) wird in der XML-Datei enthalten.

Weitere allgemeine Ansatz ist JavaScript verwenden, um die Konvertierung abzuschließen.

Durch die Verwendung von JavaScript, können wir:

  • Der Browser für Bestätigungstest
  • Je nach Browser und den Bedürfnissen der Benutzer zu verwenden, um eine andere Sheet

Dies ist der XSLT Charme! XSLT ist ein entworfen, um die Daten von einem Format in ein anderes Format zu ermöglichen und verschiedene Arten von Browsern und unterschiedlichen Bedürfnisse der Nutzer zu unterstützen.

Client-XSLT-Transformation wird die Zukunft eine der wichtigsten Aufgaben, die vom Browser ausgeführt werden, und wir werden ihr Wachstum (Braille, klangliche Browser, Netzwerkdrucker, Handheld-Geräte, etc.) in einem bestimmten Browser-Markt zu sehen.


XML-Dokumente und XSL-Dateien

Sehen Sie sich diese im vorherigen Abschnitt wurde aus einem XML-Dokument angezeigt:

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

Sehen Sie sich die XML - Datei .

Und begleitende XSL-Stylesheet:

<?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>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th align="left">Title</th>
<th align="left">Artist</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>

Siehe XSL - Datei .

Bitte beachten Sie ,dassdie XML-Datei enthält keinen Verweis auf die XSL-Datei.

WICHTIG: Die obige Satz bedeutet, XML - Dateien können mehrere verschiedene XSL - Stylesheets verwenden zu konvertieren.


Im Browser konvertieren XML zu XHTML

Dies ist für den Kunden zu XML-Dateien in XHTML-Quellcode:

Beispiele

<html>
<head>
<script>
function loadXMLDoc(dname)
{
if (window.ActiveXObject)
{
xhttp=new ActiveXObject("Msxml2.XMLHTTP.3.0");
}
else
{
xhttp=new XMLHttpRequest();
}
xhttp.open("GET",dname,false);
xhttp.send("");
return xhttp.responseXML;
}

function displayResult()
{
xml=loadXMLDoc("cdcatalog.xml");
xsl=loadXMLDoc("cdcatalog.xsl");
// code for IE
if (window.ActiveXObject)
{
ex=xml.transformNode(xsl);
document.getElementById("example").innerHTML=ex;
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xsltProcessor=new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
resultDocument = xsltProcessor.transformToFragment(xml,document);
document.getElementById("example").appendChild(resultDocument);
}
}
</script>
</head>
<body onload="displayResult()">
<div id="example" />
</body>
</html>

Versuchen »

Tipp: Wenn Sie nicht wissen , wie JavaScript zu schreiben, studieren Sie bitte unsere JavaScript - Tutorial .

Beispiele erläutern:

loadXMLDoc () Funktion

loadXMLDoc () Funktion wird verwendet, um die XML- und XSL-Dateien zu laden.

Er prüft den Browser-Typ und hat der Benutzer die Datei zu laden.

displayResult () Funktion

Mit dieser Funktion wird das Anzeigeformat XML-Datei mit XSL-Dateien zu definieren.

  • Laden von XML und XSL-Dateien
  • Test-Benutzer haben die Browser-Typ
  • Wenn die Browser-Unterstützung von ActiveX-Objekten des Benutzers:
    • Verwenden Sie transformNode () -Methode des XSL-Stylesheet auf das XML-Dokument
    • Stellen Sie das aktuelle Dokument (id = "example") enthält den Körper Stil XML-Dokumente angewendet wurde
  • Wenn der Browser unterstützt Objekte ActiveX ist der Benutzer nicht:
    • Erstellen Sie ein neues Objekt und Import XSL-Dateien XSLTProcessor
    • Verwenden Sie transformToFragment () -Methode des XSL-Stylesheet auf das XML-Dokument
    • Stellen Sie das aktuelle Dokument (id = "example") enthält den Körper Stil XML-Dokumente angewendet wurde