Xml XSL:避免具有不同父节点的重复节点
我有一个XML,看起来像这样Xml XSL:避免具有不同父节点的重复节点,xml,xslt,Xml,Xslt,我有一个XML,看起来像这样 <list> <item> <name>A</name> <name>B</name> <name>C</name> </item> <item> <name>B</name> </item> <item
<list>
<item>
<name>A</name>
<name>B</name>
<name>C</name>
</item>
<item>
<name>B</name>
</item>
<item>
<name>B</name>
<name>A</name>
</item>
<item>
<name>B</name>
<name>C</name>
<name>A</name>
</item>
</list>
A.
B
C
B
B
A.
B
C
A.
我需要得到没有重复元素的元素
<items>
<name>A</name>
<name>B</name>
<name>C</name>
</items>
A.
B
C
像这样^XSLT2.0解决方案
使用
此XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<items>
<xsl:for-each select="distinct-values(//name)">
<name>
<xsl:value-of select="."/>
</name>
</xsl:for-each>
</items>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<items>
<name>A</name>
<name>B</name>
<name>C</name>
</items>
将产生此XML输出:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<items>
<xsl:for-each select="distinct-values(//name)">
<name>
<xsl:value-of select="."/>
</name>
</xsl:for-each>
</items>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<items>
<name>A</name>
<name>B</name>
<name>C</name>
</items>
A.
B
C
根据要求提供XML输入文件。下面是一个XSLT 1.0解决方案,使用:
搜索XSLT分组。请注意,您使用的XSLT-1.0或2.0版本在这里有很大的不同。