Dear All,
I have trouble with matching the first following sibling which has a
child's value differ from the current one's.
I need my output look like this:
3000: 9
5000: 5
4000: 8
But I can only get the first line, 3000 : 9
Here is my xslt:
<xsl:template match="ProductList">
<xsl:apply-templates select="Substance[position() = 1 ]" />
</xsl:template>
<xsl:template match="Substance">
<xsl:value-of select = "productId"/>
:
<xsl:value-of select = "sum( num |
following-sibling::Substance[productId = $productId ]/num)" />
<!-- now check if there is another unique product, if so, call this
template recursively, but this DOES NOT work -->
<xsl:apply-templates select="following-sibling::Substance[productId
!= ./productId and position() = 1 ]" />
</xsl:template>
I have this xml data:
<ProductList>
<Substance>
<productId>3000</productId>
<num>3</num>
</Substance>
<Substance>
<productId>4000</productId>
<num>4</num>
</Substance>
<Substance>
<productId>3000</productId>
<num>3</num>
</Substance>
<Substance>
<productId>5000</productId>
<num>5</num>
</Substance>
<Substance>
<productId>4000</productId>
<num>4</num>
</Substance>
<Substance>
<productId>3000</productId>
<num>3</num>
</Substance>
</ProductList>
Thanks in advance for your help.
Biying Huang
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list