XSLT - On Server

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

Cross-browser oplossing

In de vorige hoofdstukken hebben we uitgelegd hoe je XSLT kunt gebruiken in de browser om de conversie van XML naar XHTML te voltooien. We hebben een 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-gegevens geschikt te maken voor alle soorten browsers, moeten we de XML-documenten op de server converteren en vervolgens als XHMTL naar de browser sturen.

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

XML-bestand en XSL-bestand

Bekijk deze XML-document dat al in de vorige hoofdstukken 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 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>My 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 mededeling:Deze zin geeft aan dat het XML-bestand kan worden geconverteerd met meerdere verschillende XSL-stijlbladen.

De conversie van XML naar XHTML op de server

Dit is de broncode om een XML-bestand naar XHTML te converteren op de server:

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

Tip:If you are not familiar with how to write ASP, you can learn from ourASP Tutorial》。

The first piece of code creates an instance of Microsoft's XML parser and then loads the XML file into memory. The second piece of code creates another instance of the parser and then loads this XSL file into memory. The last line of code uses the XSL document to transform the XML document and sends the result as XHTML to your browser. Task completed!

See how it works.