использование $variable в указании пути к элементу

andyjam

Новичок
использование $variable в указании пути к элементу

есть такой вот простенький шаблон, глядя на который можно догадаться чего хотел добиться автор:)
Код:
<xsl:template match="apmenu/section">
	<xsl:variable name="sect" value="@idSection"/>
	<xsl:variable name="section" select="/apmenu/lang/$sect/name/text()"/>
	<xsl:value-of select="$section"/>
</xsl:template>
суть его в том, что значение текстовой переменной $sect используется в указании пути к элементу (/apmenu/lang/$sect/name/text()).
однако, приведенный код не работает.

я рассматривал другие примеры и нашел как использовать переменную в аттрибутах (element[@attr = $value]), а вот самих элементах, т.е. узлах дерева - никак не получается. подскажите, плиз, как добраться до пресловутого нужного узла...
 

andyjam

Новичок
Warning: process(): XPath error Invalid type in /apmenu/lang[name($sect)]//name/text()

Warning: process(): XPath error Invalid type in /apmenu/lang[name($sect)]/name/text()

сделал так:
<xsl:variable name="sect" value="string(@idSection)"/>

то же самое.
 

worm

Новичок
/apmenu/lang[$sect]//name/text()

именно с двумя слэшами. Если не проканает, привиди xml документ
 

slach

Новичок
/apmenu/lang/*[name()=$sect]/name/text()

вот как то так
правда не будет работать если
$sect = tag1/tag2

eval() в XPath 1.0 нету

хотя можно наверное как нибудь через exslt обойти
 
Сверху