When you create a sequence of elements using:
<xsl:variable name="v" as="element()+">
<a/>
<a/>
<a/>
</xsl:variable>
then the elements in the resulting sequence are not siblings. They are
parentless, whereas siblings always share a parent. To make them siblings
you need to add a document node, which you can do simply by leaving out the
"as" attribute:
<xsl:variable name="v">
<a/>
<a/>
<a/>
</xsl:variable>
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Angela Williams
[mailto:Angela(_dot_)Williams(_at_)the401kcompany(_dot_)com]
Sent: 30 April 2007 21:00
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Xpath - count preceding-siblings matching
some condition
This works great in my test stylesheet. However, when I use
this in my real stylesheet, I end up with 1 group, so all
rows have a row-nbr=1.
The only difference in my real stylesheet is how I build $tmp-table.
Instead of selecting from a static node tree, it is built in
memory with the <xsl:variable name="tmp-table" as="element()+">
<!-- build the data -->
</xsl:variable>
I've tried writing out the data instead of putting it in a
variable, and then using that output as input for the test
stylesheet and it works!?!
Is there something different about holding the temporary tree
in memory to process it, as opposed to selecting from a
static file? When I view the $tmp-table variables in the
debugger, my node-sets look exactly the same in both real and
test stylesheets.
I'm going cross-eyed - any suggestions?
Thanks!
Angela
-----Original Message-----
From: Angela Williams
Sent: Monday, April 30, 2007 1:35 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Xpath - count preceding-siblings matching
some condition
That's wonderful!
Thanks!
Angela
-----Original Message-----
From: Bjorndahl, Brad
[mailto:brad(_dot_)bjorndahl(_at_)thermofisher(_dot_)com]
Sent: Monday, April 30, 2007 1:19 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Xpath - count preceding-siblings matching
some condition
How about:
<table>
<xsl:for-each-group select="//data/a"
group-starting-with="a[(_at_)col-nbr lt
preceding-sibling::a[1]/@col-nbr]" >
<xsl:variable name="row" select="position()" />
<xsl:for-each select="current-group()" >
<b col-nbr="{(_at_)col-nbr}" row-nbr="{$row}" />
</xsl:for-each>
</xsl:for-each-group>
</table>
Brad.
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--