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 に答える