在匹配上下文中删除XML节点

时间:2015-07-22 13:27:45

标签: xml xslt

我想从

中删除元素bar
<data><foo>1</foo><bar><bla /></bar></data>
<data><foo>2</foo><bar><bla /></bar></data>
<data><foo>3</foo><bar><bla /></bar></data>

但仅当foo2匹配时。所以结果应该是这样的:

<data><foo>2</foo></data>

我使用以下代码:

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

<xsl:template match="bar[../foo = 2]" />

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

这是另一种方式,但不确定这是否会产生任何影响,因为匹配条件首先非常简单:

<xsl:template match="data[foo = 2]/bar" />