您的位置:首页 > 其它

xslt格式化输出xml文件的三种方法(转)

2010-10-25 17:04 295 查看
xslt格式化输出xml文件的三种方法

XSL由两部分组成:

一是转化XML文档;二是格式化XML文档。

如果你不理解这个意思,可以这样想:XSL是一种可以将XML转化成HTML的语言,一种可以过滤和选择XML数据的语言,一种能够格式化XML数据的语言。(比如用红色显示负数。)

这里不再讲XSL的语法结构,主要讲用XSLT格式化输出XML的三种方法:

第一:直接输出,需要XML和XSL两个文档,用户通过浏览器直接访问XML文档就可看到效果,但需要客户端浏览器支持XMLparser,所以这种方法限制性很大,这种方法的关键是在XML文件中要写入与XSL关联的行<?xml:stylesheet type="text/xsl" src="***.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))

</script>

解释:第一步,建立一个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))

%>

---------------------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: