如何在xsl中调用外部javascript函数?

时间:2010-12-24 11:19:56

标签: javascript xslt

我有一个js文件,其中一个函数返回值。

我想将此值与xsl文件中的xml值进行比较。

我的javascript是

function getUser()
{
   return user;
}

在xsl文件中,我想在conditon中检查这个值。

我怎么能这样做?

2 个答案:

答案 0 :(得分:4)

虽然它不是标准的,但可以在XSLT 中执行JavaScript函数。

使用MSXML,您可以使用msxsl:script extension element

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:msxsl="urn:schemas-microsoft-com:xslt"
      xmlns:user="http://mycompany.com/mynamespace">

<msxsl:script language="JScript" implements-prefix="user">
  function getUser()
  {
   return user;
  }

</msxsl:script>

<xsl:template match="/">
   <xsl:value-of select="user:getUser(.)"/>
</xsl:template>

</xsl:stylesheet>

答案 1 :(得分:2)

参考以下

  1. How To Include Client-Side Script Functions in an XSL Document
  2. Passing parameters to javascript script in xslt
  3. Row value is not available in javascript
  4. Calling Javascript within XSL after transformation in RSS Web Part
  5. 还要记得添加DEFER attrinute。

     <SCRIPT LANGUAGE="javascript" DEFER="true">
      <xsl:comment>
    
    function hiLite()
     {
       alert("hello");
     }
    
    </xsl:comment>
    </SCRIPT>