请原谅我以前的类似帖子。希望我可以从很好的反馈中学习,但仍然在XPath中挣扎。我再次为类似的帖子感到抱歉!xsl转换 - 删除重复
当前XML
<?xml version="1.0" encoding="utf-8" ?>
<data>
<table_1 dropdown1="Item1"></table_1>
<listitems key1="Item1" name="" key2="Id2"/>
<listitems key1="Item1" name="Item A" key2="Id2"/>
<listitems key1="Item1" name="Item B" key2="Id2"/>
<listitems key1="Item1" name="" key2="Id4"/>
<listitems key1="Item1" name="Item A" key2="Id4"/>
<listitems key1="Item1" name="Item B" key2="Id4"/>
<listitems key1="Item2" name="" key2="Id6"/>
<listitems key1="Item2" name="Item C" key2="Id6"/>
<listitems key1="Item2" name="Item D" key2="Id6"/>
</data>
当前XSL
<xsl:template match="/">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<xsl:for-each select="/data/listitems[@key1=/data/table_1/@dropdown1]">
<xsl:value-of select="@name"/>
<br/>
</xsl:for-each>
</body>
</html>
</xsl:template>
<xsl:template match="listitems">
<xsl:value-of select="concat(@name, ' ')" />
</xsl:template>
当前结果:
棒,你没有给我们一些非常重要的东西 - 请提供转换的确切想要的结果。这可能有助于读者了解需要哪些分组 - 除非您还指定了分组的要求。记住一个基本原则:不要让读者猜测实际需要什么。请。 – 2012-08-03 01:53:47
你是否应该让你第一个6'listitem'元素全部用'key1 =“Item1”'?你的代码不会重复任何事情,项目A和项目B都存在两次,并且都具有相同的'key1'值。 – Flynn1179 2012-08-03 06:23:40
@DimitreNovatchev我试图获得的唯一值将填充一个下拉列表。我使用名称属性值作为下拉列表的项目。 – Rod 2012-08-03 13:05:42