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