File: Data.xml
<?xml version="1.0"?>
<products>
<product name="strawberry jam">
<region name="south" sales="20.00" />
<region name="north" sales="50.00" />
</product>
<product name="raspberry jam">
<region name="south" sales="205.16" />
<region name="north" sales="10.50" />
</product>
<product name="plum jam">
<region name="east" sales="320.20" />
<region name="north" sales="39.50" />
</product>
</products>
File: Transform.xslt
<?xml version="1.0"?>
<products xsl:version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:for-each select="products/product">
<xsl:sort select="sum(region/@sales)" order="descending" />
<product name="{@name}"
sales="{format-number(sum(region/@sales), '$####0.00')}" />
</xsl:for-each>
</products>
Output:
<?xml version="1.0" encoding="UTF-8"?><products><product name="plum jam" sales="$359.70"/><product name="raspberry jam" sales="$215.66"/><product name="strawberry jam" sales="$70.00"/></products>
|