As @LingamurthyCS mentions, consider the Identity Transform and template to rename <item> nodes with various XPath match references as shown below:
With result reference and apply-templates on child elements:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output version="1.0" encoding="UTF-8" indent="yes" method="xml"/>
<xsl:strip-space elements="*"/>
<!-- Identity Transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="result/*">
<item>
<xsl:apply-templates select="*"/>
</item>
</xsl:template>
</xsl:transform>
Without result reference and copy-of on child elements:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output version="1.0" encoding="UTF-8" indent="yes" method="xml"/>
<xsl:strip-space elements="*"/>
<!-- Identity Transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/*/*">
<item>
<xsl:copy-of select="*"/>
</item>
</xsl:template>
</xsl:transform>
With item reference:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output version="1.0" encoding="UTF-8" indent="yes" method="xml"/>
<xsl:strip-space elements="*"/>
<!-- Identity Transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[contains(name(), 'item')]">
<item>
<xsl:apply-templates />
</item>
</xsl:template>
</xsl:transform>
/result/*i.e., the children elements ofresultand transform them as required. - Lingamurthy CS