xsl-list
[Top] [All Lists]

Re: [xsl] Conditional in-context nodeset variables

2008-01-03 09:47:35
well... group h1 must include all h2 groups and same with any other  h level,
also i must get chance to any other elements
not only to be just copied but "touched" by others templates,
also in case with wrong nesting best case for me is possibly wrongly
place some item in other section
then lost it at all

On Jan 3, 2008 7:38 PM, Andrew Welch 
<andrew(_dot_)j(_dot_)welch(_at_)gmail(_dot_)com> wrote:
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>
--~--



--~------------------------------------------------------------------
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>
--~--