Here is the code.
<xsl:template match="report">
<xsl:variable name="unique-solutions"
select="item[not(metadata/solution =
preceding-sibling::metadata/solution)]/metadata/solution" />
Your items do not have a preceding-sibling::metadata element.
You should write preceding-sibling::item/metadata/solution.
Even then, with multiple solutions in one item, it's wrong. It will
select all the solutions in one item if none of them is the same as a
solution in a previous item; but if one solution is the same and others
are different, none of them will be selected.
I recommend you use the Muenchian technique instead.
Michael Kay
<xsl:for-each select="$unique-solutions">
<xsl:sort select="." />
<xsl:value-of select="." />
</xsl:for-each>
</xsl:template>
Here is the XML file.
<report>
<item>
<content>
....
</content>
<metadata>
<solution>A</solution>
<solution>B</solution>
<solution>C</solution>
</metadata>
</item>
<item>
<content>
.....
</content>
<metadata>
<solution>A</solution>
<solution>B</solution>
<solution>D</solution>
</metadata>
</item>
</report
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list