Please visit our sponsors !
XSL - On the Server
Since not all browsers support XML and XSL, one solution is to transform the
XML to XHTML on the server.
A Cross Browser Solution
In the previous chapter we explained how XSL can be used to transform a document
from XML to XHTML in the browser. We let a JavaScript use an XML
parser to do the transformation. This solution will not work
with a browser that doesn't support an XML parser.To make XML data available to all kinds of browsers, we have to transform the XML document on the
SERVER and send it as pure XHTML to the BROWSER.
That's another beauty of XSL! One of the design goals for XSL was to make it possible to
transform data from one format
to another on a server, returning readable data to all kinds of future browsers.
XSL transformation on the server is bound to be a major part of the Internet
Information Server work tasks in the future, as we will see a growth in the specialized
browser market (Braille, aural browsers, Web printers, handheld devices, etc.)
The XML file and the XSL file
Take a new look at the XML document that you saw in the previous chapters:
<?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>
|
If you have Netscape 6 or IE 5 or higher you can view
the XML file.
And the accompanying XSL style sheet:
<?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>
|
If you have Netscape 6 or IE 5 or higher you can view
the XSL file.
Note: Be sure that the XML file does
not have a reference to the XSL file.
IMPORTANT: The above sentence indicates that an XML file on the server could
be transformed using many different XSL files.
Transforming XML to XHTML on the Server
Here is the source code needed to transform the XML file to XHTML on the
server:
<%
'Load 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 don't know
how to write ASP, you can study our ASP tutorial.
The first block of code creates an instance of the Microsoft XML parser
(XMLDOM), and loads the XML file into memory. The second block of code creates
another instance of the parser and loads the XSL document into memory. The last
line of code transforms the XML document using the XSL document, and returns the
result to the browser. Nice!
See how it works.
Jump to: Top of Page
or HOME or
Printer friendly page
Search W3Schools:
What Others Say About Us
Does the world know about us? Check out these places:
Dogpile
Alta Vista
MSN
Google
Excite
Lycos
Yahoo
Ask Jeeves
We Help You For Free. You Can Help Us!
W3Schools is for training only. We do not warrant its correctness or its fitness for use.
The risk of using it remains entirely with the user. While using this site, you agree to have read and accepted our
terms of use and
privacy policy.
Copyright 1999-2002 by Refsnes Data. All Rights Reserved
|