使用XSLT从XML中删除节点

时间:2015-04-20 13:01:20

标签: xml xslt xpath

<Document>
    <NodeA>1</NodeA>
    <NodeB>2</NodeB>
    <ServiceNode>3</ServiceNode>
    <NodeX>4</NodeX>
</Document>

我需要使用XSLT转换从上面的XML中删除ServiceNode。转换的输出应该是:

<Document>
    <NodeA>1</NodeA>
    <NodeB>2</NodeB>
    <NodeX>4</NodeX>
</Document>

我已经尝试了this solutionthis solution,并且没有得到任何这些工作。输出值始终包含“排除”节点。我该怎么做才能让它发挥作用?

1 个答案:

答案 0 :(得分:2)

你没有说出你的XSL是什么样的。因此,我猜它还有另外一个错误?!

使用以下代码,您可以通过应用空模板来消除<ServiceNode>

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="ServiceNode"/>
</xsl:stylesheet>