在XSL中访问JS中定义的变量
其实我的本意是想将一个节点中的内容比如:aa.htm|bb.htm|cc.htm通过JS函数返给XSL一个数组arr,每个数组元素对应一个htm文件.现在想在XSL中动态生成一个TABLE,逐行显示一个数组元素.现在遇到二个问题.如果动态创建一个三行的TABLE,如果在XSL中引用arr[0],arr[1],arr[2]做为TD中的值.
谢谢大家!
问题点数:20、回复次数:6Top
1 楼net_lover(【孟子E章】)回复于 2005-03-25 07:48:31 得分 10
与js交互参见
http://dotnet.aspx.cc/ShowDetail.aspx?id=592D3BAD-C3DA-4217-2235-7D6AB7C62DB8
http://dotnet.aspx.cc/ShowList.aspx?id=11Top
2 楼gaoyb101523(三皮)回复于 2005-03-25 09:48:06 得分 0
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:xalan="http://xml.apache.org/xslt"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:fn="http://www.mycompany.com/mynamespace">
<msxsl:script language="JScript" implements-prefix="fn">
<![CDATA[
var sel=0;
var arr=new Array("aa.htm","bb.htm","cc.htm");
function getFile(){
return arr[0];
}
]]>
</msxsl:script>
<xsl:output method="html" encoding="gb2312" />
<xsl:template match="/">
<html>
<head>
<title>新闻公告</title>
</head>
<body>
<table>
<tr>
<td>
<xsl:value-of select="fn:getFile()"/>//怎么不可以?????
</td>
</tr>
</table>
</body>
</html>
</xsl:template>
Top
3 楼gaoyb101523(三皮)回复于 2005-03-25 15:30:59 得分 0
看来在不能定义全局变量.我将var arr=new Array("aa.htm","bb.htm","cc.htm");放入方法getFile()中就可以输出.现在想返回整个arr,在XSL中访问某个数组元素时却提示出错.比如<xsl:value-of select="fn:getFile()[0]"/>即arr[0]却提示错误.请问如何访问?Top
4 楼ssm1226(雨中人(虚心学习))回复于 2005-03-25 15:50:17 得分 10
只能返回字符型~~~~Top
5 楼gaoyb101523(三皮)回复于 2005-03-25 16:28:50 得分 0
谢谢ssm1226(雨中人).
其实,我是想把XML中的一个字点中的内容比如:a.htm|b.htm|c.htm利用JS的分割后想动态显示在一个TABLE中,每行显示一个.但是现在感觉在XSL中使用JS很不方便.所以考虑使用XSL中的定义的一些函数来做这件事情.不知这样的思路对不对?Top
6 楼gaoyb101523(三皮)回复于 2005-03-25 16:34:28 得分 0
感觉在HTM中使用DOM定义XML的格式比直接使用XSL中定义XML的格式方便很多.犹其是比较复杂的格式.也许我还是对XSL的语法不太熟悉吧.Top




