xsl-list
[Top] [All Lists]

[xsl] Creating new, distinct groups of ranges from an aggregation of individual ranges

2014-11-17 23:07:00
Greetings,
I'm trying to use XSLT 2.0 to create a new set of grouped ranges based on the 
overlap of an aggregation of a set of non-contiguous individual ranges. Example:
Given a range of numbers as an individual set:1. <range>150-202</range>2. 
<range>201-225</range>3. <range>201-204</range>4. <range>205-234</range>5. 
<range>226-234, 250-260</range>
I'm trying to produce a new grouping based on the way the groups 
overlap:150-200 (this is where <range> 1 starts and overlaps to 2 & 3)201-202 
(this is where 1 & 2 overlap, and group 1 ends)203-204 (this is where 2 & 3 
overlap and 3 ends)205-225 (this is where 4 starts and begins to overlap with 
5)226-234 (this is where 4 & 5 overlap and end for the first part of 5)250-260 
(this is where the second range in 5 exists)
The start and end point of the individual source ranges form the boundaries.
I expect to end up with a string or variable structure 
like:<finalrange><range>150-200</range><range>201-202</range>etc</finalrange>or:
 <range start="150" end="200"/><range start="201" end="202"/>etc
Ultimately I have to format some content in XSLFO based on the XML's 
participation in the "new" given range grouping. If you know aircraft 
effectivity, this is what I am trying to group.
I've been using <xsl:sequence> to find all the numbers of a single range, so I 
can do compares against individual numbers in the entire range, if necessary. 
But, it seems like it may be easier to just work with the boundaries: the start 
and end points and see if a value falls within it, somehow, rather than 
iterating repetitively through enumerations of sequences.
I've been searching the archives for a while and have found some evocative 
possibilities from Dimitre Novatchev and Michael Kay, but I can't quite find a 
way to work with the overlapping. I'm continuing to study their 
ranging/grouping examples, but help would be appreciated!
Thanks,Michael Friedman                                           
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>