|
Subject: RE: [xsl] Yet another grouping question From: "Andrew Welch" <ajwelch@xxxxxxxxxxxxxxx> Date: Thu, 16 Sep 2004 10:04:41 +0100 |
An XSLT 2.0 solution:
<xsl:template match="/">
<index>
<xsl:for-each-group select="indexRoot/indexItem"
group-by="@primary">
<primary name="{@primary}">
<xsl:for-each select="current-group()[@secondary]">
<secondary name="{@secondary}"/>
</xsl:for-each>
</primary>
</xsl:for-each-group>
</index>
</xsl:template>
No keys or generate-id() in sight :)
cheers
andrew
> So I've gone through the 'XSLT Questions and Answers' and
> Jeni's site and it is still not clear to me why my Muenchien
> grouping isn't working. Specificaly, the step related to
> limiting responses to the first in the group.
>
> Imagine I have an XML file like this:
>
> <indexRoot>
> <indexItem primary="ide" secondary="object repository"/>
> <indexItem primary="ide" secondary="Project Manager"/>
> <indexItem primary="ide" secondary="Code Editor"/>
> <indexItem primary="projects" secondary="type of"/>
> <indexItem primary="projects" secondary="additional projects"/>
> <indexItem primary="unmanaged code"/>
> </indexRoot>
>
>
> I would like to group it something like:
>
>
> <index>
> <primary name="ide">
> <secondary name="object repository"/>
> <secondary name="Project Manager"/>
> <secondary name="Code Editor"/>
> </primary>
> <primary name="projects">
> <secondary name="type of"/>
> <secondary name="additional projects"/>
> </primary>
> <primary name="unmanaged code"/>
> </index>
>
> I have defined a key like this:
>
> <xsl:key name="index-by-primary" match="indexItem"
> use="@secondary" />
>
> When I try to get the first with something like:
>
> <xsl:for-each select="indexItem[count(. | key('index-by-primary',
> @primary)[1]) = 1]">
> <xsl:message>
> <xsl:value-of select="@primary"/>, <xsl:value-of
> select="@secondary"/>
> </xsl:message>
> </xsl:for-each>
>
> I get a message for every indexItem, not just the first of
> each unique @secondary.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Yet another grouping ques, M. David Peterson | Thread | [xsl] Exclude elements in transform, Sönke Ruempler |
| [xsl] Checking from browser, Francisco Perez | Date | [xsl] Exclude elements in transform, Sönke Ruempler |
| Month |