xslt javascript:尝试使用包含破折号的名称定义函数时出错

时间:2012-03-26 18:37:12

标签: javascript xslt xmlspy

关注David Carlisle blogspot exslt node-set function我将以下内容添加到我的样式表中:

...xmlns:msxsl="urn:schemas-microsoft-com:xslt"...

<msxsl:script language="jscript" implements-prefix="exslt">
    this['node-set'] = function (x) {
        return x;
    }
</msxsl:script>

如果我理解正确,这种在javascript中定义函数的方法(使用this)是必要的,因为函数名称中有破折号;将其定义为function node-set(){...}将无效,this['z']相当于this.z 问题是这个脚本被XML Spy中的脚本验证器拒绝。

  

脚本编译错误(相对于脚本开始):

     

第1行,角色   3:语法错误

     

第1行,第31个字符:预期标识符“         this ['node-set'] = function(x){return x; }“

当我定义function nodeset(){...}时完全没问题,但不知何故它不允许我使用构造this['...'],甚至不使用this['nodeset'],其中使用没有破折号的函数名。

任何人都知道我该怎么办?大卫,也许? : - )

1 个答案:

答案 0 :(得分:0)

我在Altova支持台检查过这个问题,询问使用&#34;这个&#34;时的错误,他们回答如下:

The code in question is non-standard for XSLT 1.0, using MSXML-only features.

不是一个明确的答案,但我推断这意味着XML Spy的javascript版本不支持&#34;这个&#34;。
因此,我将在需要它的地方包含代码,只需在浏览器列表中打开XML +引用的样式表来检查代码,而不必担心XML Spy在xslt编辑或保存期间提到的javascript错误。