我想做的是为每个集合代码检索这些值的第一次出现:
<Root>
<Set>
<Code>10</Code>
<Date>20140405</Date>
</Set>
<Set>
<Code>12</Code>
<Date>20140405</Date>
</Set>
<Set>
<Code>12</Code>
<Date>20140404</Date>
</Set>
<Set>
<Code>11</Code>
<Date>20140404</Date>
</Set>
<Set>
<Code>11</Code>
<Date>20140305</Date>
</Set>
<Set>
<Code>12</Code>
<Date>20140305</Date>
</Set>
<Set>
<Code>10</Code>
<Date>20140302</Date>
</Set>
</Root>
我想要的结果是:我使用了带有按日期排序和position()
的foreach,但没有得到正确的结果:
<Root>
<Set>
<Code>10</Code>
<Date>20140405</Date>
</Set>
<Set>
<Code>12</Code>
<Date>20140404</Date>
</Set>
<Set>
<Code>11</Code>
<Date>20140404</Date>
</Set>
</Root>
<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:key name="kLineById" match="Set" use="Code"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Set[not(generate-id() = generate-id(key('kLineById', Code)[1]))]"/>
</xsl:stylesheet>