1

我正在尝试处理以下 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>
4

1 回答 1

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>
于 2011-09-17T08:10:47.410 回答