Hallo zusammen!
Ich habe ein kleines Problem mit XSL: value-of gibt mir (int) numbers zurück, keine Strings, wie ich sie eigentlich bräuchte.
Zur Verdeutlichung ein Beispiel. Meine XML sieht etwa wie folgt aus:
Nathan der WeiseG.E. Lessing8
Diese XML wird durch eine XSL-Datei ausgelesen und dargestellt. In ihr enthalten ist auch JavaScript-Code, den ich später zur weiterführenden Manipulation der Daten benötige (wozu genau ist hier nicht relevant). Ich will nun mit Hilfe von value-of Daten aus der XML in JavaScript-Variablen verfrachten. Da ich höchst unterschiedliche Datentypen habe (Titel und Autor sind Strings, die Preise hingegen sind Numbers [der Einfachheit halber Integers]), würde ich alle Daten erstmal als String übergeben wollen. Wo nötig können sie später per parseInt() in eine Integer überführt werden.
Nun ist es leider so, dass xsl:value-of mir eben _keine_ Strings liefert. Wenn man mit untenstehendem JavaScript versucht, den Titel oder den Autor an Variablen übergeben, bricht das Skript ab und tut gar nichts mehr. Allein der Preis lässt sich einlesen – offenbar, weil er als Integer geparset werden kann, denn wenn man sich per typeof() den Datentyp anzeigen lässt, gibt JS „number“ aus.
Hier mein JS-Code:
script type=„text/javascript“>
var title = ;
alert(title); --> funktioniert nicht
var author = ;
alert(author); --> funktioniert nicht
var price = ;
alert(price); --> funktioniert (allerdings nur, wenn man die obigen vier Zeilen weglässt; sonst stürzt das Skript bereits vorher ab)
Ich habe schon alles probiert, um value-of in Strings zu überführen:
select=“//author/text()“
select=“string(//author)“
var author = new String( )
Es hilft alles nichts. Das Skript schmiert weiterhin ab, und nur der Preis lässt sich erfolgreich einlesen. Was ist da faul, bzw.: Wie kann ich value-of anweisen, doch bitteschön Strings zurückzugeben?