Hi Michael,
Sorry, I was too quick in suggesting to add the filtering test to the
grouping predicate:
<xsl:for-each select="Document/Article
[count(.|key('by-info', @info)[1])=1 and (@filter='food')]">
That worked with my sample input, but more out of coincidence.
The filter test actually belongs in the next statement:
<xsl:template match="Documents">
<Documents>
<xsl:for-each
select="Document/Article[count(.|key('by-info', @info)[1])=1]">
<Document name="{(_at_)info}">
<xsl:copy-of select="key('by-info',
@info)[(_at_)filter='food']"/>
</Document>
</xsl:for-each>
</Documents>
</xsl:template>
Hope that helps better :)
Anton