[XSLT] Variabele gebruiken als element

Pagina: 1
Acties:

  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08 00:37
Ik weet dat je in XSLT geen variabelen kunt wijzigen.

Maar ik wil toch voor iets dynamischer gaan dus had ik het volgende bedacht.

Ik geef de variabele een waarde adv een string(firstElement) element:
XML:
1
2
3
4
5
6
<xsl:variable name="anchorKey">
  <xsl:choose>
    <xsl:when test="string(firstElement)">firstElementName</xsl:when>
    <xsl:otherwise>secondElementName</xsl:otherwise>
  </xsl:choose>
 </xsl:variable>


Als er dus geen firstElement is dan wordt de waarde van de XSL variable "secondElementName", dat werkt verder prima.

Maar het lukt me niet om deze variabele te gebruiken als elementnaam, ik wil hem namelijk als volgt gebruiken:

XML:
1
2
3
4
<xsl:for-each select="current-group()">
  <xsl:sort select="$anchorKey"></xsl:sort>
  <xsl:value-of select="$anchorKey"></xsl:value-of><br/>
</xsl:for-each>     


Maar dit print alleen de echte waarde uit van de variabele en niet de waarde van het element zelf.

Is het uberhaupt mogelijk om een dergelijke constructie te bouwen, of moet ik op een andere manier te werk gaan, ik wil liever niet bij de sort en bij de value-of dezelfde element namen op geven.

Op internet ben ik nog wel tegen gekomen dat het met {$anchorKey} moet, maar dat pikt mijn parser niet (XmlSpy)

  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 27-11 13:24
XML:
1
<xsl:value-of select="*[name()=$anchorKey]"/>

  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08 00:37
matthijsln schreef op vrijdag 01 december 2006 @ 00:26:
XML:
1
<xsl:value-of select="*[name()=$anchorKey]"/>
Dat werkt alleen als het element ook op het huidige niveau zit, maar in de <choose> bepaal ik welke key ik gebruik en die kan op verschillende niveaus zitten.