Please visit our sponsors !
XSL - On the Client
If your browser supports XML, XSL can be used to transform the document to
XHTML in your browser.
A JavaScript Solution
In the previous chapter we explained how XSL can be used to transform a document
from XML to XHTML. We added an XSL style sheet to the XML
file and let the browser do the transformation.Even if this works fine, it is not always desirable to include a style sheet reference in
an
XML file (i.e. it will not work in a non XSL aware browser.)
A more versatile solution would be to use a JavaScript to do the XML to
XHTML transformation.
By using JavaScript, we can:
- do browser-specific testing
- use different style sheets according to browser and user
needs
That's the beauty of XSL! One of the design goals for XSL was to make it
possible to transform data from one format to another, supporting different
browsers and different user needs.
XSL transformation on the client side is bound to be a major part of the
browsers 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 to notice that the XML file does not have a reference to
the XSL file.
IMPORTANT: The above sentence indicates that an XML file could
be transformed using many different XSL files.
Transforming XML to XHTML in Your Browser
Here is the source code needed to transform the XML file to XHTML on the
client:
<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: If you don't know how to write JavaScript, you can study our
JavaScript tutorial.
The first block of code creates an instance of the Microsoft XML parser
(XMLDOM), and loads the XML document 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 writes the
result to the XHTML document. Nice!
If you have IE 6.0: See
how it works.
If you have IE 5.0: 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
|