2012-03-26 4 views
0

David Carlisle blogspot exslt node-set function Nach mir die unten an mein Sheet hinzugefügt:Xslt javascript: Fehler beim Versuch Funktion mit einem Strich mit Namen zu definieren

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

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

Wenn ich richtig verstehe, auf diese Weise eine Funktion in Javascript definieren (mit this) ist notwendig wegen des Bindestrichs im Funktionsnamen; Definieren Sie es als function node-set(){...} wird nicht funktionieren und this['z'] entspricht this.z.
Das Problem ist, dass dieses Skript vom Skript-Validator in XML Spy abgelehnt wird.

Script Compiler-Fehler (n) (relativ zum Skript beginnen):

Linie 1, Zeichen 3: Syntaxfehler

Linie 1, Zeichen 31: Erwartete Kennung " dieser [ 'Knoten -Set '] = function (x) {return x;} "

kein Problem, wenn ich function nodeset(){...} definieren, aber irgendwie ist es mir nicht erlauben, um das Konstrukt zu verwenden this['...'], nicht einmal this['nodeset'] wo ein Funktionsname ohne Bindestriche verwendet wird.

Wer weiß, was ich tun soll? David, vielleicht?

:-)
+0

Versuchen Sie, den Abstand zwischen '' function'' und '' (x) '' zu löschen, so dass es nur '' function (x) '' liest. Der '' Expected identifier'' lässt mich denken, dass der Parser eine Form von '' function funcName (x) '' 'oder' 'function (x)' 'erwartet - also Leerzeichen, die signifikant sind. –

+0

kein Glück - selbe Fehler :-(Ich habe auch versucht, die Leerzeichen um die '=' zu entfernen, nur für den Fall. – Maestro13

+0

Nun, Javascript erlaubt named Funktionen zugewiesen werden Variablen. Was ist mit '' this ['Knoten-Set'] ?. = function nodeset (x) { '' –

Antwort

0

Ich habe dies mit Altova Support Desk, über den Fehler zu fragen, wenn „dies“, und sie antwortete wie folgt:

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

keine klare Antwort, aber ich ableiten, dass diese Impliziert, dass die JavaScript-Version von XML Spy "this" nicht unterstützt.
Ich werde also den Code enthalten, wo ich es brauche und nur den Code überprüfen, indem Sie die XML + Öffnen bezeichnet Sheet in der Liste der Browser nicht über die Javascript-Fehler stört, dass XML Spy während Xslt bearbeiten oder speichern erwähnt.

Verwandte Themen