如何通过xslt删除标记(其中包含特殊标记)

问题描述:

我有以下xml。如何通过xslt删除标记(其中包含特殊标记)

<rules> 
    <rule> 
    <name>aa</name> 
    </rule> 

    <rule> 
    <name>bb</name> 
    </rule> 

    <rule> 
    <name>cc</name> 
    </rule> 
</rules> 

我想删除规则,它的名字是通过XSLT“BB”。所以输出应该是 -

<rules> 
     <rule> 
     <name>aa</name> 
     </rule> 


     <rule> 
     <name>cc</name> 
     </rule> 
</rules> 

我试过这个,但它不起作用。

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

<xsl:template match="//rules[rule[name[text()='bb']]]"> 

</xsl:template> 

谢谢。

+0

“不工作” - 以什么方式?看看匹配参数,它可能会删除规则元素而不是特定的规则? – HorusKol

要删除它有一个名字元素,它具有文本的特定规则元素,你应该需要在你的比赛是:

<xsl:template match="rule[name[text()='bb']]"> 
+0

非常感谢。它现在起作用!其实我是通过该xslt删除标记。 – user1321466