XSLT 2.0:过滤重复项

时间:2014-06-01 21:42:59

标签: xslt-2.0

我在模板中有这一行:

<xsl:for-each select="//img/@src[not(@ = preceding::@)]">

生成图片文件名列表:

<img src="mypic1.jpg"/>

现在我需要从图片列表中过滤重复的图片。

<xsl:for-each select="//img[not(node() = preceding::img)]">

不起作用,因为它适用于整个图像节点。 如何更改行以使用src属性? 所以问题在于问题的最后一部分。

1 个答案:

答案 0 :(得分:3)

您可以使用distinct-values(//img/@src),例如

<xsl:for-each select="distinct-values(//img/@src)">
  <li><xsl:value-of select="."/></li>
<xsl:for-each>

或者,您可以使用for-each-group

<xsl:for-each-group select="//img" group-by="@src">
  <li><xsl:value-of select="@src"/></li>
<xsl:for-each-group>