Hallo,
ich habe eine xml struktur die zb. so aussieht:
<PropertyText_nr1>prop1</PropertyText_nr1>
<PropertyText_nr0>prop2</PropertyText_nr0>
Uh, das ist XML-Design-mäßig eines der idiotischten Dinge, die man tun kann... Erinnert mich irgendwie an http://thedailywtf.com/Articles/XML-Abuse.aspx...
Wenn es auch nur *IRGENDWIE* geht: Ändere die XML-Struktur. Du wirst damit nicht glücklich werden. Besser wäre z.B. <PropertyText nr="0"> oder so...
<xsl:param name="proptext">concat('PropertyText_nr', $num)</xsl:param>
Ok, Du scheinst einige XSLT-Details noch nicht so ganz verinnerlicht zu haben:
1. xsl:param/ willst Du nur, wenn Du den Inhalt bei call-template auch mit with-param überschreiben können willst. Sonst willst Du xsl:variable/ - ansprechen kannst Du sie auf gleiche Weise mit $name.
2. concat() ist eine XPath-Funktion, d.h. Du müsstest statt Elementinhalt das ins select-Attribut schreiben, z.B. so:
<xsl:variable name="proptext" select="concat('PropertyText_nr', $num)" />
Sonst steht nämlich einfach nur *direkt* der Text (!) »concat('PropertyText_nr', $num)« in der Variable.
3. Selbst dann selektierst Du nur den Text "PropertyText_nr0", nicht aber den zugehörigen Knoten. Wenn Du den selektieren willst, musst Du mit Qualifiern arbeiten:
<xsl:variable name="proptext" select="*[local-name() = concat('PropertyText_nr', $num)]" />
Damit sollte es dann auch funktionieren.
Viele Grüße,
Christian