| 三. XSL--在客户端的实现
1.javaScript解决方案
在上面的章节中我们已经解释了XSL是如何将XML转换成HTML文件。方法就是在XML文档的头部加入一个XSL样式表信息,然后让浏览器执行转换过程。
这种方法在大部分情况下都做得很好,但是在不支持XML的浏览器中就无法正确显示了。
一个更好的更全面的解决方案是使用Javascript来实现XML到HTML的转换。但是使用javaScript必须得到以下功能支持:
a.允许javascript代替浏览器进行细节检测;
b.根据不同的需要和不同的浏览器使用不同的样式表。
对于XSL来说这是完全可行的。设计XSL的目标之一就是允许将一种格式转换成另一种格式,支持不同的浏览器,支持不同的用户需求。未来的浏览器的重要任务就是在客户端执行XSL的转换工作。
2.一个具体的实例
下面是我们上面提到的一个XML文档(cd_catalog.xml)例子的部分代码:
<?xml version="1.0" encoding="ISO8859-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> . . .
下面是完整的XSL文件(cd_catalog.xsl):
<?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <html> <body> <table border="2" bgcolor="yellow"> <tr> <th>TITle</th> <th>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>
注意,现在XML文件还没有加入XSL样式表,还没有被转换成HTML文件。 |