好吧,我有這個XMLXSL唯一值
<roots>
<root>
<name>first</name>
<item type='test'><something>A</something></item>
<item type='test'><something>B</something></item>
<item type='test'><something>C</something></item>
<item type='test'><something>A</something></item>
<item type='other'><something>A</something></item>
<item type='test'><something>B</something></item>
<item type='other'><something>D</something></item>
</root>
<root>
<name>second</name>
<item type='test'><something>E</something></item>
<item type='test'><something>B</something></item>
<item type='test'><something>F</something></item>
<item type='test'><something>A</something></item>
<item type='other'><something>A</something></item>
<item type='test'><something>B</something></item>
<item type='other'><something>D</something></item>
</root>
</roots>
現在我需要得到各根節點的唯一值到目前爲止,我已經
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="text"/>
<xsl:key name="item-by-value" match="something" use="."/>
<xsl:key name="rootkey" match="root" use="name"/>
<xsl:template match="/">
<xsl:for-each select="key('rootkey','second')">
<xsl:for-each select="item/something">
<xsl:if test="generate-id() = generate-id(key('item-by-value', normalize-space(.)))">
<xsl:value-of select="."/>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
如果我使用「第一」關鍵只得到第一根我得到一個好的結果ABCD
我怎麼過,如果我使用「第二」我只得到EF但需要得到的結果是ABDFE
很好的問題(+1)。查看我的答案,獲得完整和正確的解決方案。 :) – 2010-04-30 01:04:05