XSLT 1.0 解决方案:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/*">
<result>
<xsl:apply-templates select="c"/>
</result>
</xsl:template>
<xsl:template match=
"c[not(contains(concat(',', normalize-space(/*/idset), ','),
concat(',', @id, ',')
)
)
]"/>
</xsl:stylesheet>
当此转换应用于提供的 XML 文档时:
<source>
<idset>
1,2,4
</idset>
<c id = "1">aaa</c>
<c id = "2">bbb</c>
<c id = "3">ccc</c>
<c id = "4">ddd</c>
</source>
产生了想要的正确结果:
<result>aaabbbddd</result>