On 03/01/2008, Vyacheslav Sedov <vyacheslav(_dot_)sedov(_at_)gmail(_dot_)com>
wrote:
yep - it small simplified part of big code (more precisely - just testcase),
i don`t use xsl:...group since it make my code behavior like it use pull
model,
but i am trying to use push model - maybe it wrong & i just not
familiar with grouping,
i feel myself with this task like cow on ice :)
a cow on ice... :)
Don't worry too much about push and pull - for grouping you have to
use pull - and for-each-group is excellent (like most things in XSLT
once you 'get' them)
Here's an example using for-each-group with group-ending-with:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:output indent="yes"/>
<xsl:variable name="input">
<div>
<p>p</p>
<h1></h1>
<h2></h2>
<p>p2</p>
</div>
</xsl:variable>
<xsl:template match="/">
<xsl:for-each-group select="$input/div/*" group-ending-with="h1|h2">
<group>
<xsl:copy-of select="current-group()"/>
</group>
</xsl:for-each-group>
</xsl:template>
</xsl:stylesheet>
It generates this output:
<group>
<p>p</p>
<h1/>
</group>
<group>
<h2/>
</group>
<group>
<p>p2</p>
</group>
Is that what you were after? If not, modify the input and and
required output and post back.
--
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--