【发布时间】:2011-02-11 15:15:33
【问题描述】:
我是 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>
【问题讨论】: