我有以下xml
<equationgroup>
<equation>
<MathFork>
<Math>2*3</Math>
<note>some note</note>
<branch><Math>8^2</Math></branch>
</MathFork>
</equation>
</equationgroup>
&#13;
我想从MathFork中删除Math子元素,但是使用xslt将其保留为分支。
所以结果应该是:
<equationgroup>
<equation>
<MathFork>
<note>some note</note>
<branch><Math>8^2</Math></branch>
</MathFork>
</equation>
</equationgroup>
&#13;
我该怎么做?
答案 0 :(得分:0)
...简单
这样可以保留所有元素:
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
如果你想删除&#34;数学&#34;元素,只有是&#34; MathFork&#34;的孩子。你可以用这个:
<xsl:template match="Math[parent::MathFork]"/>
使用local-name()我会尝试:
<xsl:template match="*[local-name() = 'Math' and parent::*[local-name() = 'MathFork']]"/>