Hi,
I'm currently a little puzzled on how to select a range of
siblings between
specified elements, e.g.
<?xml version="1.0"?>
<doc>
<a>cont1</a><b/><b/>
<a>cont2</a><b/><b/>
<a>cont3</a><b/><b/><c/><c/>
<a>cont4</a><b/><b/><c/><c/>
</doc>
I would like to select firstly the <b/><b/> of
<a>cont1</a><b/><b/>
e.g. a[. = 'cont1']/following-sibling::b[position() <= 2]
then the <b/><b/> of
<a>cont2</a><b/><b/>
then the <b/><b/> of
<a>cont3</a><b/><b/><c/><c/>
and finally the <b/><b/> of
<a>cont4</a><b/><b/><c/><c/>
Erm... I wonder if you mean
<xsl:for-each select="a">
<xsl:apply-templates
select="following-sibling::b[generate-id(preceding-sibling::a[1]) =
generate-id(current()) ]"/>
</xsl:for-each>
I.e. you want to group b elements according to their previous a element. See
Jeni's pages on grouping <http://jenitennison.com/xslt/grouping/>.
Cheers,
Jarno - KiEw: Graograman (Leæther Strip remix)
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list