count() Function | |
Counts the number of nodes in a given node-set. | |
Inputs | |
A node-set. |
|
Output | |
The number of nodes in the node-set. |
|
Defined in | |
XPath section 4.1, Node Set Functions. |
|
Examples | |
Here's the XML document we'll use to illustrate the count() function: <?xml version="1.0"?> <test> <p>This is a test XML document used by several of our sample stylesheets.</p> <question> <text>When completed, the Eiffel Tower was the tallest building in the world.</text> <true>You're correct! The Eiffel Tower was the world's tallest building until 1930.</true> <false>No, the Eiffel Tower was the world's tallest building for over 30 years.</false> </question> <question> <text>New York's Empire State Building knocked the Eiffel Tower from its pedestal.</text> <true>No, that's not correct.</true> <false>Correct! New York's Chrysler Building, completed in 1930, became the world's tallest.</false> </question> </test> Here's a stylesheet that illustrates the count() function: <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:variable name="newline"> <xsl:text> </xsl:text> </xsl:variable> <xsl:template match="/"> <xsl:value-of select="$newline"/> <xsl:text>Tests of the count() function:</xsl:text> <xsl:value-of select="$newline"/> <xsl:value-of select="$newline"/> <xsl:text> count(/test)=</xsl:text> <xsl:value-of select="count(/test)"/> <xsl:value-of select="$newline"/> <xsl:text> count(/true)=</xsl:text> <xsl:value-of select="count(/true)"/> <xsl:value-of select="$newline"/> <xsl:text> count(//true)=</xsl:text> <xsl:value-of select="count(//true)"/> <xsl:value-of select="$newline"/> <xsl:text> count(//test|//true|//text)=</xsl:text> <xsl:value-of select="count(//test|//true|//text)"/> <xsl:value-of select="$newline"/> <xsl:variable name="numberOfQuestions" select="count(/test/question)"/> <xsl:for-each select="/test/question"> <xsl:text> This is question number </xsl:text> <xsl:value-of select="position()"/> <xsl:text> of </xsl:text> <xsl:value-of select="$numberOfQuestions"/> <xsl:value-of select="$newline"/> </xsl:for-each> </xsl:template> </xsl:stylesheet> Here are the results of our stylesheet: Tests of the count() function: count(/test)=1 count(/true)=0 count(//true)=2 count(//test|//true|//text)=5 This is question number 1 of 2 This is question number 2 of 2 The first four invocations of the count() function merely use XPath expressions to count something in the XML document. The last use of count() counts the number of <question> elements in our document and stores that value in a variable. Generating text like |