Renomeando nós e valores com xslt
Eu sou novo no xslt e tenho uma tarefa que não sei ao certo para onde ir. Desejo renomear nós, mas mantenho o formato de todas as declarações de nós. No contexto real em que aplicarei isso, farei uma série de renomeações como essa, mas por uma questão de brevidade, o exemplo que escrevi envolve apenas a renomeação de um nó. Estou usando o XSL 1.0.
Entrada:
<variables>
<var>
<RENAME> a </RENAME>
</var>
<var RENAME='b'/>
<var>
<DO_NOT_TOUCH> c </DO_NOT_TOUCH>
</var>
<var DO_NOT_TOUCH='d'/>
</variables>
Saída desejada:
<variables>
<var>
<DONE> a </DONE>
</var>
<var DONE='b'/>
<var>
<DO_NOT_TOUCH> c </DO_NOT_TOUCH>
</var>
<var DO_NOT_TOUCH='d'/>
</variables>
Meu xslt:
<xsl:template match="RENAME">
<RENAMED>
<xsl:apply-templates select="@*|node()"/>
</RENAMED>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
Saída atual
<variables>
<var>
<RENAMED> a </RENAMED>
</var>
<var RENAME="b">
</var>
<var>
<DO_NOT_TOUCH> c </DO_NOT_TOUCH>
</var>
<var DO_NOT_TOUCH="d">
</var>
</variables>