2016-05-27 111 views
-1

输入:XSLT它结合两个节点,并删除重复的值

<data> 

     <root> 
     <name>A</name> 
     <name>B</name> 
     </root> 

     <root> 
     <name>C</name> 
     <name>D</name> 
     <name>A</name> 
     </root> 

    </data> 

输出:

<data> 
     <root> 
     <name>A</name> 
     <name>B</name> 
     <name>C</name> 
     <name>D</name> 
     </root> 
</data> 

用户输入在两个不同节点的name元素数据。所以我想要一个结合两个节点并删除重复值的XSLT。我试过了,但它不起作用。请帮帮我。

+2

您可以编辑您的问题,以显示你已经尝试了XSLT,即使它不工作。谢谢! –

+0

查看是否http://stackoverflow.com/questions/6768387/removing-duplicates-in-xml-with-xslt可以帮助您 – kjhughes

+0

任何涉及删除重复项的问题都将在XSLT 1.0和2.0中有一个非常不同的解决方案。因为这两个版本都被广泛使用,所以你真的需要说出你正在使用的是哪一个版本。 (2.0解决方案将会更容易,所以如果可能的话使用2.0。) –

回答

0

在XSLT 2.0,它只是

<xsl:for-each-group select="/data/root/name" group-by="."> 
    <xsl:copy-of select="current-group()[1]"/> 
</xsl:for-each-group> 
+0

它不工作。你能提出一些其他解决方案吗? –

+1

这是您解决问题的正常方法吗?如果它不起作用,尝试其他的东西?如果是这样,你需要重新考虑你的方法。如果某些事情不奏效,你需要找出原因,而第一步是检查失败的症状:当你说“它不工作”时,它究竟会失败? –