Thomas J.S.: Variablen in XPath

Beitrag lesen

Hallo,

--------------- zitat --------------

<xsl:param name="y" select="saxon:evaluate(concat($var_mit_dem_pfad,'y'))" />

Noch besser :) brauche ich ja gar nicht mehr selber denken.
--------------- /zitat --------------

Sofern du _immmer_ Saxon  als XSLT-Prozessor verwendest ist dies eine Lösung. Wenn nicht stehst du leider im Regen damit.

Ich wollte gerne wissen - da ich den ganzen Tag schon auf der Suche nach einer Lösung bin - ob ich in die XPath Syntax auch Variablen integrieren kann.

Generelle ja: aber es kommt darauf wan was der Wert der Variable dann ist.

Ich hab zB in der XML Datei Einträge mit Querverweisen auf andere Elemente der XML Datei.  <linkto>/1/1/1/1/1/1/</linkto>

In diesem Fall <xsl:variable name="var_mit_dem_pfad" select="linkto" /> wäre der Wert der Variable ein String.

Da ich nun aber aus dem Element /1/1/1/1/1/1/ noch Werte brauche, wollte ich mittels

<xsl:param name="y" select="$var_mit_dem_pfad/y" auf das element y zugreifen. Leider funktioniert das nicht.

Dies würde auch mit concat() nicht funktionieren, eben weil der Wert deiner Variable ein String ist.

Wenn deine Variable so aussehen würde:
<xsl:variable name="var_mit_dem_pfad" select="/1/1/1/1/1/1" />
könntest du auf das Y-Element auch so zugreifen:
<xsl:value-of select="$var_mit_dem_pfad/Y" />. weil in diesem Fall der Wert der Variable ein Teilbaum ist.

Grüße
Thomas