Input.xml为Variable($ Ixml)
<map href="A.xml">
<topic href="1.xml"/>
<topic href="2.xml"/>
<map href="C.xml">
<topic href="3.xml">
<topic href="4.xml"/>
</topic>
</map>
<map href="B.xml">
<topic href="5.xml">
<topic href="6.xml"/>
<topic href="7.xml"/>
<topic href="8.xml"/>
<topic href="4.xml"/>
<topic href="9.xml"/>
<topic href="10.xml"/>
<topic href="11.xml"/>
<topic href="12.xml"/>
</topic>
</map>
</map>
预期 - Output.xml($ Oxml)
<map href="A.xml">
<topic href="1.xml"/>
<topic href="2.xml"/>
<map href="C.xml">
<topic href="3.xml">
<topic href="4.xml"/>
</topic>
</map>
<map href="B.xml">
<topic href="5.xml">
<topic href="6.xml"/>
<topic href="7.xml"/>
<topic href="8.xml"/>
<topic href="9.xml"/>
<topic href="10.xml"/>
<topic href="11.xml"/>
<topic href="12.xml"/>
</topic>
</map>
</map>
基于我已更新我的XSLT的建议如下:----------------------------------- ----------------------
<xsl:key name="removeDuplicate" match="topic" use="@href"/>
<xsl:template match="/">
<xsl:variable name="Ixml">
<map href="A.xml">
<topic href="1.xml"/>
<topic href="2.xml"/>
<map href="C.xml">
<topic href="3.xml">
<topic href="4.xml"/>
</topic>
</map>
<map href="B.xml">
<topic href="5.xml">
<topic href="6.xml"/>
<topic href="7.xml"/>
<topic href="8.xml"/>
<topic href="4.xml"/>
<topic href="9.xml"/>
<topic href="10.xml"/>
<topic href="11.xml">
<topic href="4.xml"/>
</topic>
<topic href="12.xml"/>
</topic>
</map>
</map>
</xsl:variable>
<xsl:variable name="Oxml">
<xsl:apply-templates select="$Ixml" mode="removeDuplicates"/>
</xsl:variable>
<xsl:copy-of select="$Oxml"/>
</xsl:template>
<xsl:template match="node() | @*" mode="removeDuplicates">
<xsl:copy>
<xsl:apply-templates select="node() | @*" mode="removeDuplicates"/>
</xsl:copy>
</xsl:template>
<xsl:template match="topic[@href][not(. is key('removeDuplicate', @href)[1])]" mode="removeDuplicates"/>
</xsl:stylesheet>