XSLT: název elementu v XML pomocí proměnné

20. 07 2012 | 18.25

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: