我正在尝试处理以下XML代码段:
<inlineequation><mml:math>
<!-- eqn: [-1,1]:-->
<mml:mfenced open="[" close="]">
<mml:mn>-1</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>
我得到的最好结果是使用 copy-of 函数复制整个标记:
<xsl:template match="para/inlineequation">
<xsl:copy-of select="."/>
</xsl:template>
但是,转换后的XML也会有 inlineequation 节点,而我想将其删除。实际上,正确的输出应为:
<mml:math><mml:mfenced open="[" close="]">
<mml:mn>-1</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced></mml:math>
如何实现上述结果?我现在得到的结果是:
<inlineequation><mml:math>
<mml:mfenced open="[" close="]">
<mml:mn>-1</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>
答案 0 :(得分:1)
只需使用:
<xsl:template match="para/inlineequation">
<xsl:copy-of select="*"/>
</xsl:template>
或者,如果您已正确声明命名空间:
<xsl:template match="para/inlineequation">
<xsl:copy-of select="mml:math"/>
</xsl:template>
或
<xsl:template match="mml:math">
<xsl:copy-of select="."/>
</xsl:template>