jer
...
xslt: сумма дочерних элементов в дереве (nested sets)
есть дерево описанное в виде nested sets:
к каждом узлу привязано определенное количество товаров. нужно вывести дерево и чтобы у каждого раздела выводилось не только кол-во товаров привязанное именно к нему, но и кол-во товаров дочерних элементов.
т.е. сейчас выводится так:
а надо
вывожу дерево примерно так:
с xpath не очень хорошо знаком. подскажите, плиз, в чем не прав?
есть дерево описанное в виде nested sets:
PHP:
<tree>
<node id="1" level="1" left_key="1" right_key="8" items="3">dept1</node>
<node id="2" level="2" left_key="2" right_key="5" items="1">dept2</node>
<node id="3" level="3" left_key="3" right_key="4" items="23">dept3</node>
<node id="4" level="2" left_key="6" right_key="7" items="5">dept4</node>
и т.д...
</tree>
т.е. сейчас выводится так:
PHP:
dept1 (3)
dept2 (1)
dept3 (23)
dept4 (5)
PHP:
dept1 (32)
dept2 (24)
dept3 (23)
dept4 (5)
PHP:
<xsl:template match="tree">
<xsl:apply-templates select="node"/>
</xsl:template>
<xsl:template match="node">
<xsl:variable name="left_key" select="@left_key"/>
<xsl:variable name="right_key" select="@right_key"/>
<img src="1x1.gif" width="{@level*10}"/>
<xsl:value-of select="."/>
(<xsl:value-of select="<xsl:value-of select="sum(/root/tree[@left_key >= $left_key and @right_key <= $right_key]/@items)"/>"/>)
<br/>
</xsl:template>