number level="multiple" count="*" from="data" format="1.1.1 "
File: Data.xml <?xml version="1.0" encoding="US-ASCII"?> <data locale="us"> <record> <name> <full>A</full> <brief>I</brief> </name> <address> <street>uite 330</street> <city>Regina</city> <state>SK</state> <code>90292</code> <nation>USA</nation> </address> <tel> <phone>+1 310 823 9358</phone> <fax>+1 310 823 8649</fax> <email>i@i.org</email> </tel> </record> </data> File: Transform.xslt <?xml version="1.0" encoding="US-ASCII"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text" /> <xsl:strip-space elements="*" /> <xsl:template match="/"> <xsl:apply-templates select="data//*" /> </xsl:template> <xsl:template match="data//*"> <xsl:number level="multiple" count="*" from="data" format="1.1.1 " /> <xsl:value-of select="name()" /> <xsl:text>: </xsl:text> <xsl:text>	</xsl:text> <xsl:value-of select="text()" /> <xsl:text> </xsl:text> </xsl:template> </xsl:stylesheet> Output: 1 record: 1.1 name: 1.1.1 full: A 1.1.2 brief: I 1.2 address: 1.2.1 street: uite 330 1.2.2 city: Regina 1.2.3 state: SK 1.2.4 code: 90292 1.2.5 nation: USA 1.3 tel: 1.3.1 phone: +1 310 823 9358 1.3.2 fax: +1 310 823 8649 1.3.3 email: i@i.org