XSLT - Op de server

Aangezien niet alle browsers XSLT ondersteunen, is een andere oplossing om de conversie van XML naar XHTML op de server uit te voeren.

Cross-browser oplossing

In een eerdere sectie hebben we uitgelegd hoe je XSLT kunt gebruiken om XML naar XHTML te converteren in een browser. We hebben een stuk JavaScript gecreëerd dat de conversie uitvoert met behulp van een XML-parser. De JavaScript-oplossing werkt niet in browsers zonder XML-parser. Om XML-data geschikt te maken voor alle soorten browsers, moeten we de XML-documenten converteren op de server en ze vervolgens als XHMTL naar de browser sturen.

Dit is een van de voordelen van XSLT. Een van de ontwerpdoelen van XSLT is om het mogelijk te maken om data van de ene format naar de andere te converteren op de server en leesbare data terug te sturen naar alle soorten browsers.

XML-bestanden en XSL-bestanden

Zie deze XML-document die al in een eerdere sectie 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.

enkele bijbehorende XSL-stijltafels:

<?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>Meer CD Collectie</h2> 
    <table border="1">
      <tr bgcolor="#9acd32">
        <th align="left">Titel</th> 
        <th align="left">Artiest</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 XSL-bestanden.

Belangrijke opmerking:Deze zin geeft aan dat een XML-bestand kan worden omgezet met meerdere verschillende XSL-stijlsheets.

De server omzetten van XML naar XHTML

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

<%
'Laad XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Laad XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transform bestand
Response.Write(xml.transformNode(xsl))
%>

Tip:Als u niet weet hoe u ASP kunt schrijven, kunt u onzeASP Handleiding

De eerste code heeft een instance van Microsoft's XML Parser gecreëerd en heeft vervolgens het XML-bestand in het geheugen geladen. De tweede code heeft een andere instance van de parser gecreëerd en het XSL-bestand in het geheugen geladen. De laatste regel van de code gebruikt het XSL-document om het XML-document te transformeren en stuurt het resultaat als XHTML naar uw browser. Taak voltooid!

Zie hoe het werkt.