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...