xsl-list
[Top] [All Lists]

Re: [xsl] Conditional in-context nodeset variables

2008-01-03 09:39:29
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>
--~--