xsl-list
[Top] [All Lists]

Not-repeated elements in an <xsl:for-each>

2003-12-21 16:56:32
I wonder if there is some way to get a list of nodes without repeated
elements, something similitar to de "DISTINCT" clausule in a SELECT sentence
of SQL. I need to do this because i want to show the total sum of many
attributes from many elements. There is an example xml:

<root>
    <ship type="astropod" num="100"/>
    <ship type="spider" num="150"/>
    <ship type="astropod" num="50"/>
</root>

If I use the following XSL template:

<xsl:template match="/root">
    <xsl:for-each select=ship/@type>
        <xsl:variable name="stype" select="."/>
        <xsl:value-of select="sum(/root/ship[(_at_)type=stype]/@num)"/>
    </xsl:for-each>
</xsl:template>

i get "150 150 150", repeating the third ship who has the same type than first. 
Is there any way to only get one "astropod" type in the list xsl:for-each 
iterates?

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>