Mega Code Archive

 
Categories / XML / XSLT StyleSheet
 

Use count() and current-group() to count groups

File: Data.xml <?xml version="1.0" encoding="UTF-8"?> <employees>   <employee>     <FirstName>A</FirstName>     <LastName>B</LastName>     <Country>USA</Country>   </employee>   <employee>     <FirstName>C</FirstName>     <LastName>D</LastName>     <Country>USA</Country>   </employee>   <employee>     <FirstName>E</FirstName>     <LastName>F</LastName>     <Country>USA</Country>   </employee> </employees> File: Transform.xslt <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="2.0"   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">   <xsl:template match="/">     <html>       <body>         <h3>header</h3>         <xsl:for-each-group select="employees/employee"           group-by="Country">           <xsl:sort select="current-grouping-key()" />           <p>             Number of employees who live in:             <b>               <xsl:value-of                 select="current-grouping-key()" />             </b>             is             <xsl:value-of select="count(current-group())" />           </p>           <xsl:result-document             href="{current-grouping-key()}.xml">             <employees>               <xsl:copy-of select="current-group()" />             </employees>           </xsl:result-document>         </xsl:for-each-group>       </body>     </html>   </xsl:template> </xsl:stylesheet>