XSL支持在文件中插入script元素,从而允许程序开发人员运用既有的功能;而且,它的用法也非常简单,只是在调用时需要xsl:eval元素的辅助.

使用eval有以下两点用法:

1.在XSL中使用script
在XSL中,可以创建一个xsl:script元素,并在元素内插入script脚本.同时,可以通过xsl:script元素的属性language来指定脚本语言,不指定默认为javascript.

下面的xsl文件利用javascript实现显示一个随机数的功能:


<xsl:script language="javascript">
function GetNumber()
{
    var number;
    number=Math.round(Math.random()*9);
    return number;
}
</xsl:script>

<span>
<xsl:eval language="javascript">GetNumber();</xsl:eval>
</span>


2.使用XSL运行时方法
可以在xsl:eval中使用运行时方法.

absoluteChildNumber(node)    返回节点在所有兄弟节点中的位置,从1开始

ancestorChildNumber(nodeName,node)    返回最接近node祖先节点的子节点nodeName的位置

childNumber(node)    返回节点在具有相同名称的节点中的位置,如果没有节点和该节点具有相同的名称,则返回位置1

depth(startNode)    返回节点在树状结构中的深度

formatDate(date,format,locale)    使用特定的格式来显示日期
<!-- 日期格式 --
m - 月份(1-12)
mm - 月份(01-12)
mmm - 月份(Jan-Dec)
mmmm - 月份(January-December)
mmmmm - 月份(取第一个字母)
d - 日期(1-31)
dd - 日期(01-31)
ddd - 星期日期(Sunday-Saturday)
yy - 年份(00-99)
yyyy - 年份(1900-9999)
-- 预设的顺序是月-日-年 --
-->

formatIndex(number,format)    使用特定的格式显示提供的索引
<!-- 下面是索引的格式 --
1 - 标准的数值系统
01 - 前缀为0的数值系统
A - 大写字母顺序A到Z,然后从AA到ZZ
a - 小写字母顺序A到Z,然后从aa到zz
I - 大写罗马数字,I,II..
i - 小写罗马数字
-->

formatNumber(number,format)    使用特定的格式显示提供的数值
<!-- 下面是显示格式 --
# - 只显示有效的数字,并将无效数字省略
0 - 如果数值的数字数目比格式的数字数目少,就显示无意义的0
? - 为小数点的两侧加上无意义的0,好让使用固定大小的字形时,数字能够排成一列
. - 指定小数点的位置
, - 用作千分隔符或乘上1000将数字放大
% - 以百分比型式显示数值
E或e - 以特定格式显示数值
E-或e- - 将指数变成负号来放置负值符号
E+或e+ - 将指数变成负号来放置负值符号,并将指数变成正号来放置正值符号
-->

formatTime(time,format,locale)    使用特定的格式显示提供的时间
<!-- 显示时间的格式 --
h - 时(0-23)
hh - 时(00-23)
m - 分(0-59)
mm - 分(00-59)
s - 秒(0-59)
ss - 秒(00-59)
AM/PM - 加入AM或PM并以12时间制显示
am/pm - 加入am或pm并以12时间制显示
A/P - 加入A或P并以12时间制显示
a/p - 加入a或p并以12时间制显示
[h]:mm - 利用小时来显示过去的时间
[mm]:ss - 利用分钟来显示过去的时间
[ss] - 利用秒来显示过去的时间
ss.00 - 显示秒的数值,场所将决定正确的分隔字符
-->

uniqueID(node)    返回节点的唯一ID

上面这些函数可以直接在xsl:eval中使用,调用任何数值来进行计算和显示.
posted on 2005-07-26 23:02  wddavid  阅读(1530)  评论(3编辑  收藏  举报