XSLT - Op de client

Als uw browser XSLT ondersteunt, kan deze in de browser worden gebruikt om documenten naar XHTML te converteren.

JavaScript-oplossing

In de vorige hoofdstukken hebben we u uitgelegd hoe u een XML-document kunt converteren naar XHTML met behulp van XSLT. We hebben dit gedaan door een XSL-stijlblad aan het XML-bestand toe te voegen en de conversie door de browser te voltooien.

Hoewel deze methode goed werkt, is het niet altijd bevredigend om stijlbladen in XML-bestanden op te nemen (bijvoorbeeld, deze methode werkt niet in browsers die XSLT niet kunnen herkennen).

Een meer algemene methode is om de conversie met JavaScript uit te voeren.

Door het gebruik van JavaScript, kunnen we:

  • Voer een browserbevestigingstest uit
  • Gebruik verschillende stijlbladen op basis van browser- en gebruikersbehoeften

Dit is de charme van XSLT! Een van de ontwerpdoelen van XSLT is om het omzetten van één formaat naar een ander mogelijk te maken, terwijl het ook ondersteuning biedt voor verschillende soorten browsers en verschillende gebruikersbehoeften.

Browserseizende XSLT-conversies zullen zeker een van de belangrijkste taken worden die toekomstige browsers uitvoeren, en we zullen ook zien hoe deze in specifieke browsermarkten groeit (blinde teksten, webprinters, auditieve apparaten, enz.).

XML-bestanden en XSL-bestanden

Zie dit XML-bestand dat eerder in dit hoofdstuk is getoond:

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

Bekijk dit XML-bestand.

en de bijbehorende XSL-stijlbladen:

<?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>Mijn CD Collectie</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>

Bekijk dit XSL-bestand.

Let op, deze XML-bestand bevat geen verwijzingen naar het XSL-bestand.

Belangrijke informatie:Dit betekent dat het XML-bestand kan worden getransformeerd met meerdere verschillende XSL-stijltabellen.

Converteer XML naar XHTML in de browser

Dit is de broncode om XML-bestanden op de client om te zetten naar XHTML:

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

Tip:Als je niet weet hoe je JavaScript kunt schrijven, leer dan onzeJavaScript handleiding》。

Het eerste segment codeert een instance van Microsoft's XML-parser en laadt vervolgens het XML-bestand in het geheugen. Het tweede segment maakt een andere instance van de parser aan en laadt het XSL-bestand in het geheugen. De laatste regel gebruikt de XSL-document om het XML-document te transformeren en toont het resultaat in de browser als XHTML. De taak is voltooid!

Bekijk hoe het in IE werkt.