File: Data.xml
<elements>
<element_A>
textA_1
<command>element_B</command>
textA_2
</element_A>
<element_B>
textB_1
<command>element_C</command>
textB_2
</element_B>
<element_C>textC_1 textC_2</element_C>
</elements>
File: Transform.xslt
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" indent="yes" />
<xsl:template match="/">
<xsl:variable name="getValue">
<xsl:call-template name="recursion">
<xsl:with-param name="n" select="count(//*)" />
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$getValue" />
</xsl:template>
<xsl:template name="recursion">
<xsl:param name="n" />
<xsl:if test="number($n) > 0">
<xsl:value-of select="string(name(node()))" />
<xsl:text> </xsl:text>
<xsl:value-of select="$n" />
<xsl:call-template name="recursion">
<xsl:with-param name="n" select="number($n) -1" />
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Output:
elements 6elements 5elements 4elements 3elements 2elements 1