2013-10-10 41 views
7

我想使用XSLT将列表转换为不同的值列表。XSLT使用属性选择不同的值

输入:

<object name="obj1"/> 
<object name="obj2"/> 
<object name="obj1"/> 

所需的输出:

<object>obj1</object> 
<object>obj2</object> 

有人的想法如何完成它无论是在XSLT 1.0或2.0?

THX

回答

15

使用XSLT 2.0和

<xsl:for-each select="distinct-values(//object/@name)"> 
    <object><xsl:value-of select="."/></object> 
</xsl:for-each> 

<xsl:for-each-group select="//object" group-by="@name"> 
    <object><xsl:value-of select="current-grouping-key()"/></object> 
</xsl:for-each-group> 
+0

对我来说,它的未来这个错误' '不同的值()' 是未知的XSLT function.' – shanmugharaj

+0

你需要使用XSLT 2处理器来运行该代码。 –

+0

请你能告诉我该怎么做。我正在使用c# – shanmugharaj