xslt格式化输出xml文件的三种方法
XSL由两部分组成:
一是转化XML文档;二是格式化XML文档。
如果你不理解这个意思,可以这样想:XSL是一种可以将XML转化成HTML的语言,一种可以过滤和选择XML数据的语言,一种能够格式化XML数据的语言。(比如用红色显示负数。)
这里不再讲XSL的语法结构,主要讲用XSLT格式化输出XML的三种方法:
第一:直接输出,需要XML和XSL两个文档,用户通过浏览器直接访问XML文档就可看到效果,但需要客户端浏览器支持XMLparser,所以这种方法限制性很大,这种方法的关键是在XML文件中要写入与XSL关联的行
第二:客户端控制:需要XML,XSL,HTML 三个文档,在html文档中用js来实现转换过程,用户访问的也是这个html文件,这样由客户端浏览器处理转换,但是这样做需要以下功能的支持:
a.允许Javascript代替浏览器进行细节检测;
b.根据不同的需要和不同的浏览器使用不同的样式表。
js例子如下:
script language="javascript">
// Load XML
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("cd_catalog.xml")
// Load the XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("cd_catalog.xsl")
// Transform
document.write(xml.transformNode(xsl))
解释:第一步,建立一个Microsoft Parser(XMLDOM)解析的对象,并将XML文档读入内存;第二步,建立另外一个对象并导入XSL文档;最后一步将XML文档用XSL文档转换,并将结果输出到HTML文件中。
第三:服务端控制.前两种方法都需要浏览器解析插件(XML parser)支持,所以只有服务端控制才能完全保证可以解析。服务端控制也需要三个文件:XML,XSL,ASP(或者其他类型的动态页),主要说ASP页怎么写,里面写一些服务端要执行的代码
<%
'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))
%>
---------------------------------------------------------------------------------------