File: Data.xml <?xml version="1.0" encoding="utf-8"?> <data> <AAA id="a1" pos="start"> <BBB id="b1"/> <BBB id="b2"/> </AAA> <AAA id="a2"> <BBB id="b3"/> <BBB id="b4"/> <CCC id="c1"> <DDD id="d1"/> </CCC> <BBB id="b5"> <CCC id="c2"/> </BBB> </AAA> </data> File: Transform.xslt <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:apply-templates/> </xsl:template> <xsl:template match="/data"> <xsl:apply-templates/> </xsl:template> <xsl:template match="AAA"> <div style="color:purple"> <xsl:value-of select="name()"/> <xsl:text> id=</xsl:text> <xsl:value-of select="@id"/> </div> <xsl:apply-templates/> </xsl:template> <xsl:template match="BBB"> <div style="color:blue"> <xsl:value-of select="name()"/> <xsl:text> id=</xsl:text> <xsl:value-of select="@id"/> </div> <xsl:apply-templates/> </xsl:template> <xsl:template match="CCC"> <div style="color:maroon"> <xsl:value-of select="name()"/> <xsl:text> id=</xsl:text> <xsl:value-of select="@id"/> </div> <xsl:apply-templates/> </xsl:template> <xsl:template match="DDD"> <div style="color:green"> <xsl:value-of select="name()"/> <xsl:text> id=</xsl:text> <xsl:value-of select="@id"/> </div> </xsl:template> </xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?> <div style="color:purple">AAA id=a1</div> <div style="color:blue">BBB id=b1</div> <div style="color:blue">BBB id=b2</div> <div style="color:purple">AAA id=a2</div> <div style="color:blue">BBB id=b3</div> <div style="color:blue">BBB id=b4</div> <div style="color:maroon">CCC id=c1</div> <div style="color:green">DDD id=d1</div> <div style="color:blue">BBB id=b5</div> <div style="color:maroon">CCC id=c2</div>