Subject: Re: [xsl] Adjacent grouping? From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 17 Nov 2017 17:51:04 -0000 |
You want to start a new group if @value is greater than preceding-sibling::Content/@value. So you can use <xsl:for-each-group select="Content" group-starting-with="*[number(@value) gt number(../preceding-sibling::*/@value) + 30]"> ... </xsl:for-each-group> Michael Kay Saxonica > On 17 Nov 2017, at 17:43, rus tle profrustyleafiii@xxxxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > > Hello All, > > I am trying to remove attribute values in a list based on a frequency parameter. > > Is this possible in XSLT 2? I cannot see how to tackle the problem without being able to store the last attribute value added to the result tree so that I can compare against it for the following attribute values? I am told that there is no way to query the result tree and so I am at a loss as to whether XSLT can actually do what I require? > > To illustrate, please see the example below. > > The frequency parameter is 30. I would like to remove all values that are "within 30" of the last value used. If the first value is 0 then I would like to remove all the following attribute values that are less than 30 plus the last value added to the result tree (in this case 0). The only way I can think to do this is by somehow caching the last value that was copied to the result tree so I can compare against it with the next value. > > It was suggested to me that adjacent grouping my work? I am a recent beginner to XSLT and would love to learn more about how it might help me achieve the result I am looking for? > > Thanks, > > Rusty > > Before: > > <p frequency=b30"> > <Content value="0"/> > <Content value=b10b/> > <Content value=b15b/> > <Content value=b18b/> > <Content value=b22b/> > <Content value=b26b/> > <Content value=b34b/> > <Content value=b37b/> > <Content value=b56b/> > <Content value=b99b/> > <Content value=b101b/> > <Content value="115"/> > <Content value="118"/> > <Content value="129"/> > </p> > After: > > <p frequency="30"> > <Content value="00"/> > <Content value=""/> > <Content value=""/> > <Content value=""/> > <Content value=""/> > <Content value=""/> > <Content value="34"/> > <Content value=""/> > <Content value=""/> > <Content value="99"/> > <Content value=""/> > <Content value=""/> > <Content value=""/> > <Content value="129"/> > </p> > > XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list> > EasyUnsubscribe <-list/293509> (by email <>)
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Adjacent grouping?, rus tle profrustylea | Thread | Re: [xsl] Adjacent grouping?, Michael Kay mike@xxx |
[xsl] Adjacent grouping?, rus tle profrustylea | Date | Re: [xsl] Adjacent grouping?, Michael Kay mike@xxx |
Month |