Subject: Re: [xsl] Conditional in-context nodeset variables From: "Vyacheslav Sedov" <vyacheslav.sedov@xxxxxxxxx> Date: Thu, 3 Jan 2008 19:22:52 +0300 |
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 :) guess i need take pen and paper and first perform this task on it - look like it not solved mentally :) by the way - in my case i began use select="if () then () else ()" structure - look like it work as expected, i am not fan of several-lines long attributes but at least it work with best wishes, Slav On Jan 3, 2008 6:56 PM, Andrew Welch <andrew.j.welch@xxxxxxxxx> wrote: > > On 03/01/2008, Vyacheslav Sedov <vyacheslav.sedov@xxxxxxxxx> wrote: > > have problem > > > > for example (as input any valid XHTML) > > and context is first h1 node > > > > > > <xsl:variable name="level1" select="following-sibling::h1[1]"/> > > <xsl:variable name="level2" select="following-sibling::h2[1]"/> > > > > <xsl:variable name="next-stop"> > > <xsl:choose> > > <xsl:when test="not($level1 and $level2)"> > > <xsl:sequence select="following-sibling::*[last()]"/> > > </xsl:when> > > <xsl:when test="$level1 << $level2"> > > <xsl:sequence select="$level1"/> > > </xsl:when> > > <xsl:otherwise> > > <xsl:sequence select="$level2"/> > > </xsl:otherwise> > > </xsl:choose> > > </xsl:variable> > > > > <xsl:apply-templates select="following-sibling::*[. << $next-stop]"/> > > > > $level1 and $leve2 contain links to live in-context node > > but variable $next-stop contain copy (not reference to node) of level1 > > or level2 variable > > and even following-sibling::*[last()] provide just copy instead of > > in-context nodeset > > so << not work as expected :( > > Is it just the usual problem of $next-stop being a document-node()? If > so you need: > > <xsl:variable name="next-stop" as="element()"> > > It looks like you are trying to do positional grouping - maybe look at > xsl:for-each-group using group-ending-with. > > By the way, if you provide a small complete sample input, with a > complete stylesheet that highlights the problem then it's easy for > people to cut and paste the samples and reproduce your problem. Not > many will be bothered to mock up an input... > > cheers > -- > Andrew Welch > http://andrewjwelch.com > Kernow: http://kernowforsaxon.sf.net/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Conditional in-context no, Andrew Welch | Thread | Re: [xsl] Conditional in-context no, Andrew Welch |
Re: [xsl] Conditional in-context no, Andrew Welch | Date | Re: [xsl] Conditional in-context no, Andrew Welch |
Month |