# XSL: Element über eine Variable ermitteln



## guni (30. Nov 2009)

Hallo,

ich habe eine XML (mit DATEN), die ca. so aussieht:

[XML]<root>
  <objekt1>
    <wert1>Wert 1</wert1>
    <wert2>Wert 2</wert2>
    <wert3>Wert 3</wert3>
  <objekt1>
</root>[/XML]

jetzt habe ich noch eine Template-XML, die solche Nodes enthält:
[XML]<column>
  <value>wert1</value>
</column>[/XML]

mein problem ist, dass ich (in XSL) versuche, über die Template-XML auf die Werte aus der Daten-XML zu kommen:
(wundert euch nicht über die "sinnlosen" Codestellen; in Wirklichkeit ist mein content noch ein bisschen komplexer zu ermitteln!)

[XML]<xsl:template name="getValue" match="column">
  <xslaram name="daten"/>
  <xsl:variable name="valuename" select="value"/>
  <xsl:variable name="content">
    <xsl:value-of select="$daten/$valuename"/>
  </xsl:variable>
  <xsl:value-of select="$content"/>
</xsl:template>[/XML]

habe natürlich überprüft, dass in $valuename das Richtige drinsteht; mein Problem ist allerdings, dass $daten/$valuename trotzdem nicht den Wert zurückgibt sondern immer nur $valuename
$daten ist übrigens /root/objekt1 ;-)

also, kennt sich von euch irgendwer mit XSL so gut aus, dass er mir da weiterhelfen kann?!

mfg, guni


----------



## guni (30. Nov 2009)

weiß da keiner weiter?!


----------



## SlaterB (30. Nov 2009)

wenn du es rausfindest, wäre es interessant zu wissen 

so kann es jedenfalls kaum funktionieren,
hab bisher noch nicht danach gesucht, aber auch nichts derartiges gelesen

hier 
XSLT - Entwickler-Forum
hatte ich mal was anderes gefragt und recht schnell Antwort bekommen, 
wenn du dich nicht anmelden willst, kann ich auch deine Grundlagenfrage da stellen


edit: 15:06 nun auch dort die Frage, schon vor meinem Hinweis? 
bist dort ja auch schon länger registriert


----------



## guni (30. Nov 2009)

*gg*.
hab nach dem Forum im Internet gesucht und einfach mal meine Login-Daten ausprobiert.
Hab gar nicht mehr gewusst, dass ich mich irgendwann mal dort registriert hab.


----------



## guni (30. Nov 2009)

Hallo,

die Antwort die ich im Entwicklerforum bekommen habe ist:

[XML]<xsl:value-of select="$daten/child::*[local-name() = $valuename]"/>[/XML]

allerdings wurde ich darauf hingewiesen, dass dies erst ab XSLT 2.0 funktioniert (warum weiß ich nicht).
morgen werd ich probieren, ob JAVA schon XSLT 2.0 kompatibel ist; wenn ja -> :-D

mfg, guni


----------

