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

使用eval有以下两点用法:

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

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

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


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

使用eval元素absoluteChildNumber(node)    返回节点在所有兄弟节点中的位置,从1开始
使用eval元素
使用eval元素ancestorChildNumber(nodeName,node)    返回最接近node祖先节点的子节点nodeName的位置
使用eval元素
使用eval元素childNumber(node)    返回节点在具有相同名称的节点中的位置,如果没有节点和该节点具有相同的名称,则返回位置1
使用eval元素
使用eval元素depth(startNode)    返回节点在树状结构中的深度
使用eval元素
使用eval元素formatDate(date,format,locale)    使用特定的格式来显示日期
使用eval元素
<!-- 日期格式 --
使用eval元素m - 月份(1-12)
使用eval元素mm - 月份(01-12)
使用eval元素mmm - 月份(Jan-Dec)
使用eval元素mmmm - 月份(January-December)
使用eval元素mmmmm - 月份(取第一个字母)
使用eval元素d - 日期(1-31)
使用eval元素dd - 日期(01-31)
使用eval元素ddd - 星期日期(Sunday-Saturday)
使用eval元素yy - 年份(00-99)
使用eval元素yyyy - 年份(1900-9999)
使用eval元素-- 预设的顺序是月-日-年 --
使用eval元素
-->
使用eval元素
使用eval元素formatIndex(number,format)    使用特定的格式显示提供的索引
使用eval元素
<!-- 下面是索引的格式 --
使用eval元素1 - 标准的数值系统
使用eval元素01 - 前缀为0的数值系统
使用eval元素A - 大写字母顺序A到Z,然后从AA到ZZ
使用eval元素a - 小写字母顺序A到Z,然后从aa到zz
使用eval元素I - 大写罗马数字,I,II..
使用eval元素i - 小写罗马数字
使用eval元素
-->
使用eval元素
使用eval元素formatNumber(number,format)    使用特定的格式显示提供的数值
使用eval元素
<!-- 下面是显示格式 --
使用eval元素# - 只显示有效的数字,并将无效数字省略
使用eval元素0 - 如果数值的数字数目比格式的数字数目少,就显示无意义的0
使用eval元素? - 为小数点的两侧加上无意义的0,好让使用固定大小的字形时,数字能够排成一列
使用eval元素. - 指定小数点的位置
使用eval元素, - 用作千分隔符或乘上1000将数字放大
使用eval元素% - 以百分比型式显示数值
使用eval元素E或e - 以特定格式显示数值
使用eval元素E-或e- - 将指数变成负号来放置负值符号
使用eval元素E+或e+ - 将指数变成负号来放置负值符号,并将指数变成正号来放置正值符号
使用eval元素
-->
使用eval元素
使用eval元素formatTime(time,format,locale)    使用特定的格式显示提供的时间
使用eval元素
<!-- 显示时间的格式 --
使用eval元素h - 时(0-23)
使用eval元素hh - 时(00-23)
使用eval元素m - 分(0-59)
使用eval元素mm - 分(00-59)
使用eval元素s - 秒(0-59)
使用eval元素ss - 秒(00-59)
使用eval元素AM/PM - 加入AM或PM并以12时间制显示
使用eval元素am/pm - 加入am或pm并以12时间制显示
使用eval元素A/P - 加入A或P并以12时间制显示
使用eval元素a/p - 加入a或p并以12时间制显示
使用eval元素[h]:mm - 利用小时来显示过去的时间
使用eval元素[mm]:ss - 利用分钟来显示过去的时间
使用eval元素[ss] - 利用秒来显示过去的时间
使用eval元素ss.00 - 显示秒的数值,场所将决定正确的分隔字符
使用eval元素
-->
使用eval元素
使用eval元素uniqueID(node)    返回节点的唯一ID

上面这些函数可以直接在xsl:eval中使用,调用任何数值来进行计算和显示.

相关文章: