Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries >Thread Prev - Advanced sort >Thread Next - Re: Advanced sort Re: Advanced sortTo: NULL Date: 3/15/2009 9:55:00 AM Le 14/03/2009, Delf a supposé :
> [...]
Ok. Here where I am. Now I have to sort each tag using the 'number'.
<xsl:variable name="tagList">
<tags>
<xsl:for-each select="//data/items/item[ @isVisible = '1' ]">
<xsl:variable name="itemPosition" select="position()" />
<xsl:variable name="item" select="//data/items/item[ $itemPosition
]" />
<xsl:for-each select="$item/tags/tag">
<xsl:variable name="tagPosition" select="position()" />
<xsl:variable name="tag" select="
//data/items/item[ $itemPosition ]/tags/tag [ $tagPosition ]" />
<xsl:variable name="number" select="count(
//data/items/item[ @isVisible = '1' ]/tags/tag [ $tag = . ] )" />
<xsl:choose>
<xsl:when test="$number = 1">
<tag>
<xsl:attribute name="number">
<xsl:value-of select="$number" />
</xsl:attribute>
<xsl:value-of select="$tag" />
</tag>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="isFound">
<xsl:for-each select="//data/items/item[ @isVisible = '1' and
position() > $itemPosition ]">
<xsl:variable name="tmpPosition" select="position()" />
<xsl:variable name="tmpItem" select="
//data/items/item[ $tmpPosition ]" />
<xsl:for-each select="$tmpItem/tags/tag">
<xsl:variable name="tmpTagPosition" select="position()" />
<xsl:variable name="tmpTag" select="//data/items/
item[ $itemPosition ]/tags/tag [ $tmpTagPosition ]" />
<xsl:if test="$tmpTag = $tag">
<xsl:value-of select="1" />
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</xsl:variable>
<xsl:if test="$isFound != 1">
<tag>
<xsl:attribute name="number">
<xsl:value-of select="$number" />
</xsl:attribute>
<xsl:value-of select="$tag" />
</tag>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:for-each>
</tags>
</xsl:variable>
--
Delf
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
