Я новичок в xslt, и у меня есть задача, с которой я не совсем уверен, куда идти.Я хочу переименовать узлы, но поддерживаю формат всех объявлений узлов.В конкретном контексте, к которому я буду применять это, я буду делать серию переименований, как это, но ради краткости, пример, который я написал, включает только переименование одного узла.Я использую XSL 1.0.
Ввод:
<variables>
<var>
<RENAME> a </RENAME>
</var>
<var RENAME='b'/>
<var>
<DO_NOT_TOUCH> c </DO_NOT_TOUCH>
</var>
<var DO_NOT_TOUCH='d'/>
</variables>
Желаемый вывод:
<variables>
<var>
<DONE> a </DONE>
</var>
<var DONE='b'/>
<var>
<DO_NOT_TOUCH> c </DO_NOT_TOUCH>
</var>
<var DO_NOT_TOUCH='d'/>
</variables>
Мой 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>
Токовый выход
<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>