File: Data.xml <?xml version="1.0" encoding="UTF-8"?> <europe> <scandinavia> <state>Finland</state> <state>Sweden</state> <state>Iceland</state> <state>Norway</state> <state>Denmark</state> </scandinavia> </europe> File: Transform.xslt <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns="http://www.java2s.com" xmlns:sc="http://www.java2s.com/scand" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes" encoding="ISO-8859-1" /> <xsl:namespace-alias stylesheet-prefix="sc" result-prefix="#default" /> <xsl:template match="europe"> <xsl:apply-templates select="scandinavia" /> </xsl:template> <xsl:template match="scandinavia"> <sc:scandinavia> <xsl:apply-templates select="state"> <xsl:sort /> </xsl:apply-templates> </sc:scandinavia> </xsl:template> <xsl:template match="state"> <sc:country> <xsl:value-of select="." /> </sc:country> </xsl:template> </xsl:stylesheet> Output: <?xml version="1.0" encoding="ISO-8859-1"?> <scandinavia xmlns="http://www.java2s.com"> <country>Denmark</country> <country>Finland</country> <country>Iceland</country> <country>Norway</country> <country>Sweden</country> </scandinavia>