Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries >Thread Prev - Re: How do I get grouping to apply per parent node? [Thread Next] Re: How do I get grouping to apply per parent node?To: NULL Date: 11/3/2004 8:45:00 AM Thank-you Oleg, that does the trick. You have helped me close my reporting
bug. Just curious, if I had another attribute on the question element that
was question_id. Would it speed up performance on the compound key? Thanks
again Oleg, your feedback to users in this discussion newsgroup is
invaluable.
Kudos, Pierre
"Oleg Tkachenko [MVP]" <oleg@NO!SPAM!PLEASEtkachenko.com> wrote in message
news:uibe6CZwEHA.3376@T......
> PierreDechaine wrote:
>
>> I have applied the grouping across my xml, but have found that if I have
>> another question that has the same response values the counts appear in
>> first rendered grouping area.
>
> You can use compound key here. The idea is to index by @Text and Response
> value - one item for each unique combination of both.
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:key name="opt-group" match="/root/Question/Response"
> use="concat(../@Text, '+', text())"/>
> <xsl:template match="/root">
> <html>
> <head>
> <title>Example</title>
> </head>
> <body>
> <table width="100%" cellpadding="1" cellspacing="0" border="0">
> <xsl:apply-templates select="Question"/>
> </table>
> </body>
> </html>
> </xsl:template>
> <xsl:template match="Question">
> <tr>
> <td>
> <xsl:value-of select="@Text"/>
> </td>
> <xsl:for-each
> select="Response[generate-id()=generate-id(key('opt-group',concat(../@Text,
> '+', text()))[1])]">
> <tr>
> <td>
> <xsl:value-of select="text()"/>
> </td>
> <td>
> <xsl:value-of select="count(key('opt-group', concat(../@Text,
> '+', text())))"/>
> </td>
> </tr>
> </xsl:for-each>
> </tr>
> </xsl:template>
> </xsl:stylesheet>
>
> --
> Oleg Tkachenko [XML MVP]
> http://blog.tkachenko.com
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
