|
Subject: RE: [xsl] reordering elements based on... From: Jarno.Elovirta@xxxxxxxxx Date: Thu, 24 Jul 2003 11:14:10 +0300 |
Hi,
> The number suffix of the name attribute value in the
> parameter node should
> be used as grouping.
> I would like to get following structure.
>
> <!- parameters with ending 1 grouped into one node-->
> <element>
> <end>2000</end>
> <start>1000</start>
> </element>
>
> <!- parameters with ending 2 grouped into one node-->
> <element>
> <end>4000</end>
> <text>texthere</text>
> <start>3000</start>
> </element>
>
> Is this doable at all? Or am I abusing XSL for what it can/should do?
<xsl:key name="x" match="parameter" use="translate(@name,translate(@name,'0123456789',''),'')"/>
<xsl:template match="*[parameter]">
<xsl:for-each select="parameter[generate-id() = generate-id(key('x', translate(@name,translate(@name,'0123456789',''),''))[1])]">
<xsl:comment> parameters with ending <xsl:value-of select="translate(@name,translate(@name,'0123456789',''),'')"/> grouped into one node </xsl:comment>
<element>
<xsl:for-each select="key('x', translate(@name,translate(@name,'0123456789',''),''))">
<xsl:element name="{translate(@name, '0123456789', '')}">
<xsl:value-of select="value"/>
</xsl:element>
</xsl:for-each>
</element>
</xsl:for-each>
</xsl:template>
See <http://www.jenitennison.com/xslt/grouping/> to understand how the Muenchian Method grouping works. Add XSLT instructions to control the sorting, the code above uses document order.
Cheers,
Jarno - The Retrosic: Antichrist (Album Version)
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] reordering elements based on., Jorg Heymans | Thread | RE: [xsl] reordering elements based, Jacoby, Peter R. |
| [xsl] reordering elements based on., Jorg Heymans | Date | [xsl] index, Philippe Dubreuil |
| Month |