以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  [转帖]向XSL模板传递参数  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=6964)


--  作者:admin
--  发布时间:4/23/2004 1:59:00 PM

--  [转帖]向XSL模板传递参数
http://www.tongyi.net/article/20040318/200403183943.shtml

向XSL模板传递参数

日期:2004-3-18 9:47:40
出处:zdnet
作者:-

设想一下,你在一个XML文件中有一个项目清单,你需要在一个网页上将其展示给一个用户。用户需要选择他们想要对哪个专栏进行选择和它的订单。如果你使用XSL来将XML文件转换为HTML形式,这听起来也许会很复杂。但是向执行这个转换的XSL模板传递参数就会容易得多。
一个样本文件

  
表A中显示的是一个简单的XML文件,其中有三个项目。我们想要把XML文件转换成一个HTML文件。要实现这一点,我们将使用表B中显示的XSL模板。

通过Java进行转换
要计划性地向我们的模板传递参数,我们需要有计划地执行转换工作。我们将使用Apache Software Foundation出品的Xalan产品来处理我们的XSL模板。表C中显示了执行这个转换并给模板传递参数的代码。

Main方式在类在命令行中运行时被调用。我们已经在这个方式中对我们的订单文件和XSL模板的名称进行了硬编码。我们的类中包括一个简单的功能,它可以从通过文件名识别的文件创建新的Source对象,我们将通过它来导入我们的订单文件和模板。

接下来,我们将使用HashMap对象来存储我们想要传递给模板的参数(专栏和订单)。Transform方式通过从TransformerFactory中创建一个Transformer类来处理实际的XSL转化。转化的参数由Transformer类中的setParameter方式进行发送。我们将使用一个iterator来对HashMap中的每一个条目进行处理并设置参数。每个所设置的参数对于XSL模板都是可用的,如表D所示。位于模板顶部的<xsl:param />元素对引入的参数进行确认并在缺少参数的情况下提供缺省值。

参数化XSL模板在开始时可能会比较复杂,但一旦你进行了尝试,你就会发现它可以帮助你缩短编码时间。


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
2,544.922ms