XSLT按组合条件删除符合规则的ITEM父节点实现咨询
XSLT实现指定ITEM节点过滤
你可以直接使用以下XSLT代码完成需求,核心逻辑基于恒等变换做节点过滤:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!-- 恒等转换模板:默认原样复制所有节点、属性、文本 --> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <!-- 匹配满足删除条件的ITEM节点,空模板表示不输出该节点 --> <xsl:template match="ITEM[STORAGE = 0 and not(VARIANT/STORAGE > 0)]"/> </xsl:stylesheet>
规则说明
删除匹配的XPath逻辑完全对齐需求:
- 第一个条件
STORAGE = 0:筛选ITEM自身STORAGE子节点值为0的节点 - 第二个条件
not(VARIANT/STORAGE > 0):筛选不存在任何VARIANT子节点的STORAGE值大于0的节点 - 两个条件同时满足的ITEM节点会被直接过滤不输出,其余所有内容保持原样
内容的提问来源于stack exchange,提问作者Bohumír Mäsiar
相关产品推荐
相关产品推荐

