0

David Carlisle blogspot exslt 节点集函数之后,我将以下内容添加到我的样式表中:

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

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

this如果我理解正确,由于函数名称中的破折号,这种在 javascript 中定义函数(使用)的方式是必要的;将其定义为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']在使用没有破折号的函数名的情况下也是如此。

有人知道我应该怎么做吗?大卫,也许?:-)

4

1 回答 1

0

我与 Altova 支持台进行了检查,询问使用“this”时的错误,他们回答如下:

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

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

于 2012-03-27T08:25:14.730 回答