Pokud pracujete s XSLT, možná někdy narazili na problém, jak vypsat data z elementu, jehož název ale přesně nevíte a jeho část máte uloženou v proměnné. Většinou to lze obejít, což jsem často dělával i já. Přitom to lze ale jednoduše vyřešit.
Řešením je použít funkce local-name() a concat(). Pomocí local-name() se můžete odkázat na název elementu a concat() vám umožňuje spojit řetězce a tedy i řetězec s proměnnou.
Vypsání nějakého názvu by tedy mohlo vypadat následovně (jen pro ukázku):
<xsl:value-of select="$produkt/*[local-name()=concat('cena_',$prihlaseny_neprihlaseny)]" />
Místo local-name() by šlo použít i name(), ale to by mohlo někdy dělat - podle tohoto vysvětlení by se ale problémy měly týkat pouze použití s namespace, kde obě funkce vrací něco trochu jiného.
Zdroje: