xslt javascript: ошибка при попытке определить функцию с именем, включающим тире - PullRequest
0 голосов
/ 26 марта 2012

После 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>

Если я правильно понимаю, это способ определения функции в 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 голосов
/ 27 марта 2012

Я проверил это в службе поддержки Altova, спросив об ошибке при использовании «this», и они ответили следующим образом:

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

Непонятный ответ, но я считаю, что это подразумевает, что версия javascript XML Spy не поддерживает "this".
Таким образом, я включу код там, где он мне нужен, и просто проверю код, открыв таблицу стилей со ссылкой XML + в списке браузеров, не беспокоясь об ошибке javascript, которую XML Spy упоминает во время редактирования или сохранения xslt.

...