арифметика в переменной

Kirill

Новичок
арифметика в переменной

XML:
<item link="" level="0">
System
<add_block>
<settings link="" level="1">System settings</settings>
</add_block>
<item link="" level="1">
sub system
<add_block/>
<item link="" level="2">
sub sub sysytem
<add_block/>
</item>
</item>
</item>

XSLT:
<xsl:template match="settings">
<xsl:variable name="padding">(<xsl:value-of select="../../@level"/>+1)*5</xsl:variable>
</xsl:template>

Нужно в при обработке ноды settings в переменную padding поместить level родителя (item), увеличить его на 1 и умножить на 5.
Не подскажите ли:
Правильно ли я получаю @level родитсельской ноды?
Почему в значиние переменной padding помещается строка,а не производятся вычисления, как сделать так чтобы в padding помещалась не строка, а результат вычислений?
 

inTox

вёбных дел мастер
если ты получаешь предка (item), а не родителя (add_block) - то правильно.

<xsl:variable
name="padding"
select="number(number(../../@level)+1)*5"
/>
 
Сверху