Thomas J.S.: Wo liegt der Haken XSLT1.0 zu XSLT2.0

Beitrag lesen

Hallo,

danke fuer die schnelle Antwort,

also er scheint mit string-join erst einmal weiterzukommen, allerdings kommt er nicht durch ganz durch, so dass ich nicht sehe, ob er es richtig macht. jetzt hängt er (der parser ;-) bei substring-after($knoten/@attribute,'zeichen') mit der gleichen Fehlermeldung. Gibt es eine Erklärung, was nun der Unterschied geworden ist, warum das concat nicht mehr funktioniert.

Es liegt eher nicht an concat(), denn da hat sich nichts geändert, sondern am value-of.
value-of in XSLT 1.0 selektierte das erste Vorkommen in einer Sequenz: d.h. $knoten/@attribute entsprach: 1. gefundene "Knoten" in Dokumentordnung / @attrib.
In XSLT 2.0 liefert value-of für $knoten/@attribute alle gefundene "Knoten" und damit hat dann concat ein Problem, denn der Argument in concat() muss ein einzelner String sein und nicht eine (Reihen)Folge von Strings.

Aber mit <xsl:with-param name="knoten" select="knoten[position() &gt; 1]"/> bekommst du eben nicht nur einen Knoten sondern möglicherweise eben sehr viele.
Du kannst es einfach mal für dich testen, ein: <xsl:value-of select="name($knoten)" separator="-" /> sollte/wird dir mehrere Namen ausgeben.

Grüße
Thomas