xsl-list
[Top] [All Lists]

Re: looping, moving through elements??

2003-10-24 02:56:00
Please could u explain to me what this line means because i dont really understand what it does, more specifically not sure what ".|follwing-sibling::ve" means??

<xsl:key name="threedots" match="ve" use="(.|following-sibling::ve)[string-length(@pos)=3+string-length(translate(@pos,'.',''))][1]/@pos"/>

From: David Carlisle <davidc(_at_)nag(_dot_)co(_dot_)uk>
Reply-To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] looping, moving through elements??
Date: Thu, 23 Oct 2003 13:13:25 +0100

This is a fairly standard grouping problem, it would be easier in xslt2
but in xslt 1 you want to use keys as explained on Jeni's site.

In your case you want to group things based on the following ve with
three . in its pos attribute so your key is

<xsl:key name="x" match="ve"
  use="(.|folowing-sibling::ve)
[string-length(@pos)=3+string-length(translate(@pos,'.',''))][1]/@pos"/>

then something like (untested)

<xsl:for-each
select="ve[string-length(@pos)=3+string-length(translate(@pos,'.',''))]">
<tr>
<xsl:for-each select="key('x',@pos)">
<td><xsl:value-of select="."/></td>
</xsl:for-each>
</tr>
</xsl:for-each>

David

--
http://www.dcarlisle.demon.co.uk/matthew

________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


_________________________________________________________________
Stay in touch with absent friends - get MSN Messenger http://www.msn.co.uk/messenger


XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list