XSL简明教程(4)在服务器端的实现

所属分类: 网络编程 / XML/RSS 阅读数: 1617
收藏 0 赞 0 分享
原著:Jan Egil Refsnes 翻译:阿捷

四: XSL --- 在服务器端的实现


1.兼容所有的浏览器

在上面一章我们介绍了可以通过JavaScript调用浏览器的XML parser(解析软件)来转换XML文档。但是这个方案依然有个问题:如果浏览器没有XML
parser插件怎么办?(注:IE5内自带XML parser)

为了使我们的XML数据能被所有的浏览器正确显示,我们不得不在服务器端将XML转换成纯HTML代码,再输出给浏览器。

这也是使用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文件为HTML文件的原代码:


<%

'Load the XML

set xml = Server.CreateObject("Microsoft.XMLDOM")

xml.async = false

xml.load(Server.MapPath("cd_catalog.xml"))


'Load the XSL

set xsl = Server.CreateObject("Microsoft.XMLDOM")

xsl.async = false

xsl.load(Server.MapPath("cd_catalog.xsl"))


Response.Write(xml.transformNode(xsl))

%>


注意:我们这里的例子采用的是ASP文件,用VBScript编写的。如果您不了解ASP或者VBScript,建议阅读有关书籍。(当然,也可以采用其他的语言编写服务器端程序)


第一段代码建立一个Microsoft Parser(XMLDOM)解析的对象,并将XML文档读入内存;第二段代码建立另外一个对象并导入XSL文档;最后一行代码将XML文档用XSL文档转换,并将结果输出到HTML文件中。

更多精彩内容其他人还在看

怎样打开XML文件?xml文件如何打开?

XML是Extensible Markup Language的简写,一种扩展性标识语言,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言
收藏 0 赞 0 分享

不同浏览器对XML的解析是不同的

下面这段代码在火狐能够解析,在谷歌和IE就不行了,应该如何来修改代码?如何解析XML呢
收藏 0 赞 0 分享

关于html嵌入xml数据岛如何穿过树形结构关系的问题

html里面引用xml的数据岛,如何穿过树形结构的关系,我不知道这个datafld里面应该如何使用xml里面的标签名称,如何加前缀,如何从resume得到name子元素
收藏 0 赞 0 分享

报错:XML页无法显示,下列标记没有被关闭解决方法

从数据库读出数据,然后以XML的格式显示数据,但是提示hd,category,subsort等没有关闭
收藏 0 赞 0 分享

关联数据入门——RDF应用

语义网也不仅仅是把数据放在互联网上,而是试图将数据联系起来,并产生数据与现实事物的联系,以方便人与机器阅读与理解这些数据,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

UTF8转成GB2312乱码问题解决方案

审核完的信息要生成XML类型的文件,并且XML要采用GB2312编码,因为采集的新闻网站,有很多网站采用的是UTF8编码,这样在转化的过程中又出现乱码
收藏 0 赞 0 分享

xml创建节点(根节点、子节点)

声明、创建、创建根节点、添加Books的子节点最后保存文档(如果已经存在该文件,则更新之;如果没有,则创建该文件),不会的朋友可以了解下哈
收藏 0 赞 0 分享

XML和YAML的使用方法

什么是YAML呢?它相比XML又有哪些优缺点呢?什么情况下用YAML呢?YAML怎么使用呢?在此做一个简单的总结。
收藏 0 赞 0 分享

初识XML基础知识

这篇文章主要介绍了XML基础知识,从定义、发展史到XML的具体应用,需要的朋友可以参考下
收藏 0 赞 0 分享

浅谈XML Schema中的elementFormDefault属性

下面小编就为大家带来一篇浅谈XML Schema中的elementFormDefault属性。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享
查看更多