Kirov Plamen wrote:
Hi
<xsl:value-of select="sum(..//element[type/@id = 2 or type/@id =
3]/amount/@due)"/>
If I want to sum by more than 5 different Id's or/and for
more amount values(@due, @init...), this method of sorting
values is unusual - a lot of repeated "or" clauses for
every "select".
You can use something like the following:
(drkm)[139] ~/xslt/tests$ cat kirov.xsl
<xsl:transform
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:my="my:kirov.xsl"
version="1.0">
<xsl:output method="text"/>
<my:ids>
<elem id="2"/>
<elem id="3"/>
</my:ids>
<xsl:variable name="ids" select="
document('')/*/my:ids/elem/@id"/>
<xsl:template match="root">
<xsl:value-of select="
sum(element[type/@id = $ids]/amount/@due)"/>
</xsl:template>
</xsl:transform>
(drkm)[140] ~/xslt/tests$ cat kirov.xml
<root>
<element>
<type id="1" des="a"/>
<amount due="10.12" init="0.25"/>
</element>
<element>
<type id="2" des="a"/>
<amount due="1.82" init="1.00"/>
</element>
<element>
<type id="1" des="a"/>
<amount due="-12.00" init="0.00"/>
</element>
<element>
<type id="3" des="a"/>
<amount due="50.00" init="120.35"/>
</element>
</root>
(drkm)[141] ~/xslt/tests$ saxon kirov.xml kirov.xsl
Warning: at xsl:transform on line 4 of kirov.xsl:
Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
51.82
(drkm)[142] ~/xslt/tests$ xsltproc kirov.xsl kirov.xml
51.82
(drkm)[143] ~/xslt/tests$
Regards,
--drkm
___________________________________________________________________________
Découvrez une nouvelle façon d'obtenir des réponses à toutes vos questions !
Profitez des connaissances, des opinions et des expériences des internautes sur
Yahoo! Questions/Réponses
http://fr.answers.yahoo.com
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--