count element with certain attribute name
File: Data.xml
<employees>
<employee hireDate="04/23/1999" officer="yes">
<last>A</last>
<first>B</first>
<salary>1000</salary>
</employee>
<employee hireDate="09/01/1998" officer="no">
<last>C</last>
<first>D</first>
<salary>95000</salary>
</employee>
<employee hireDate="08/20/2000">
<last>E</last>
<first>F</first>
<salary>8900</salary>
</employee>
</employees>
File: Transform.xslt
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" omit-xml-declaration="yes" indent="no" />
<xsl:template match="employees">
A. Number of employees:
<xsl:value-of select="count(employee)" />
B. Number of officers:
<xsl:value-of select="count(employee[@officer='yes'])" />
C. Number of employees without 'officer' attribute set:
<xsl:value-of select="count(employee[not(@officer)])" />
D. Number of comments in 'employees' element:
<xsl:value-of select="count(//comment())" />
</xsl:template>
<xsl:template match="employee" />
</xsl:stylesheet>
Output:
A. Number of employees:
3
B. Number of officers:
1
C. Number of employees without 'officer' attribute set:
1
D. Number of comments in 'employees' element:
0
Related examples in the same category