以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  关于在xsl中调用jscript函数的问题..  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=55881)


--  作者:protess
--  发布时间:11/23/2007 3:34:00 PM

--  关于在xsl中调用jscript函数的问题..
test.xml

<root>   
<item> abcdefabcdeabcdef </item>   
</root>

//////////////////////////////////////////////////////////////////////////////////////////
test.xsl

<?xml   version="1.0"   encoding="gb2312"?>   
<xsl:stylesheet   version="1.0"   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"   
xmlns:msxsl="urn:schemas-microsoft-com:xslt"   
xmlns:myNS="urn:myNameSpace">   

<msxsl:script   language="JScript"   implements-prefix="myNS">   
<![CDATA[   
function   trans(s)   
{   
var   ary   =   s.split('b');   
return   ary.join('B');   
}         
    ]]>   
</msxsl:script>   


<xsl:template   match="/">   
<xsl:apply-templates   select="//root/item"/>   
</xsl:template>   
<xsl:template   match="root/item">   
<xsl:value-of   select="myNS:trans(string(.))"/>   
</xsl:template>   

  </xsl:stylesheet>


然后用 Xalan   -o   test.html   test.xml   test.xsl

会报错:XalanXPathException:   The   function   number   'urn:myNameSpace:trans'   is   not   available.   (file:///D:/demohtml/test.xsl,   line   22,   column   47)


这是为什么呢?应该这样写没有问题啊?
ps:我是用的xalan   c++   1.10.0

   


--  作者:Qr
--  发布时间:11/25/2007 11:50:00 AM

--  
如果偶没记错的话,msxsl:script应该是草案版的东东,而你用的是1.0版的。另外,从来没用过这个msxsl:script,也不会通过这种方式计算和传递结果。
--  作者:protess
--  发布时间:11/26/2007 3:17:00 PM

--  
谢谢Qr,
那我应该如何在我的xslt中调用jsp的函数呢?
并且jsp函数的参数和xslt的变量如何交互呢?
--  作者:Qr
--  发布时间:11/26/2007 4:02:00 PM

--  
XSL只能使用自身的方法。如果你想将JSP的参数传递给XSL,只能使用DOM方式,动态修改XSL的参数或代码来实现。本人不熟悉JSP,无示例可考。
--  作者:protess
--  发布时间:11/26/2007 4:58:00 PM

--  
哎,看来只有用其他方法来做了.
ps:Qr有没有用xslt做比较灵活的统计直方图的示例呢?以前用的SVG,不能打印,而且要装插件.
非常感谢.
--  作者:Qr
--  发布时间:11/26/2007 9:38:00 PM

--  
XSLT做直方图?偶可没这本事!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
8,101.563ms