Mirco: XPath aus xml:param zusammensetzen

Beitrag lesen

Hi.

Ich möchte in meinem XSL einen bestimmten Wert aus der XML-Datei verwenden.
Die XML-Datei wird komplett dynamisch erzeugt. Im Anschluß daran wird die <stringtable> noch reinkopiert:

<root x="entry2">
...
 <stringtable>
  <entry1>
   <e id="1">...</e>
   <e id="2">...</e>
  </entry1>
  <entry2>
   <e id="1">...</e>
   <e id="2">...</e>
  </entry2>
  <entry3>
   <e id="1">...</e>
   <e id="2">...</e>
  </entry3>
 </stringtable>
</root>

In der XSL-Datei möchte ich nun folgendes machen.
<xsl:param name="x" select="root/@x"/>
<xsl:param name="pfad" select="root/stringtable/$x"/>

um dann mittels

<xsl:value-of select="$pfad/e[@id=2]" />

den wert aus "root/stringtable/entry2/e" zu lesen, bei dem "id=2" ist.

d.h., wie genau die select-Anweisung heißen muss, entscheidet sich erst, nachdem das XML-File erzeugt wurde - also immer erst unmittelbar vorm aufruf des XSLT-Prozessors.

Allerdings beschleicht mich das Gefühl, dass Konstrukte wie 'select="root/stringtable/$x"' nicht funktionieren. Hat einer von euch einen Hinweis, wie man so ein select erstellt?

Gruß,
Mirco

P.S.: Ja, das ist dazu gedacht, um unterschiedliche Sprachen zu unterstützen (deshalb auch Stringtable). Vermutlich gibt es dafür viel bessere Konzepte?!? Stuck my nose into it if you like...