File: Data.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="Transform.xslt"?>
<root>
<first position="1">
<level1 children="0">This is level 1 of the nested elements</level1>
</first>
<second position="2">
<level1 children="1">
<level2>This is level 2 of the nested elements</level2>
</level1>
</second>
</root>
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:output method="xml"/>
<xsl:template match="@*">
<xsl:element name="{name()}">
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates select="*|@*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Output:
<?xml version="1.0" encoding="UTF-8"?><root><first><position>1</position><level1><children>0</children></level1></first><second><position>2</position><level1><children>1</children><level2/></level1></second></root>
|