[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
It's not clear to me whether a period goes in the same group as the previous element if (a) its price is within #20 of the price of the previous period, or (b) its price is within #20 of the price of the first period in the group, or (c) its price is within #20 of every other period within the group. Assuming (c) which seems the most plausible, I think you need to do this by sibling recursion rather than by xsl:for-each-group. Here's an example of the idea, there are plenty of others you can find by googling:
http://internal.rhaptos.org/devblog/cbearden/2009.07.12-2010
The difference is how to test whether the next item belongs in the same group: typically you'll pass along parameters containing the minimum and maximum price of items in the group, and either add the next item to the group or start a new group depending how the price of the next item compares with these two values.
On 13/08/2010 10:35, Kevin Bird wrote:
Re: [xsl] Grouping adjacent elements by value - within a range
Subject: Re: [xsl] Grouping adjacent elements by value - within a range From: Michael Kay <mike@xxxxxxxxxxxx> Date: Fri, 13 Aug 2010 12:52:41 +0100 |
It's not clear to me whether a period goes in the same group as the previous element if (a) its price is within #20 of the price of the previous period, or (b) its price is within #20 of the price of the first period in the group, or (c) its price is within #20 of every other period within the group. Assuming (c) which seems the most plausible, I think you need to do this by sibling recursion rather than by xsl:for-each-group. Here's an example of the idea, there are plenty of others you can find by googling:
http://internal.rhaptos.org/devblog/cbearden/2009.07.12-2010
The difference is how to test whether the next item belongs in the same group: typically you'll pass along parameters containing the minimum and maximum price of items in the group, and either add the next item to the group or start a new group depending how the price of the next item compares with these two values.
Michael Kay Saxonica
On 13/08/2010 10:35, Kevin Bird wrote:
Hello
I typeset price tables for Tour Operators brochures. Due to design changes, the space left to display price information has been reduced. I need to group adjacent<price> elements that are within a certain range (the range would be passed as a parameter). Once the price groupings are worked out, I then need to modify the corresponding<period> elements.
The example below shows adjacent price elements grouped that are within a range of #20 (with the lowest price returned). Using the same groupings, the<period> elements are modified by taking the first<startdate> and last<enddate>.
I can use XSLT 2.0.
========================= SOURCE XML =========================
<?xml version="1.0" encoding="UTF-8"?> <grid> <row id="periods"> <period> <startdate>01-Sep-2010</startdate> <enddate>19-Sep-2010</enddate> </period> <period> <startdate>20-Sep-2010</startdate> <enddate>25-Sep-2010</enddate> </period> <period> <startdate>26-Sep-2010</startdate> <enddate>30-Sep-2010</enddate> </period> <period> <startdate>01-Oct-2010</startdate> <enddate>11-Oct-2010</enddate> </period> <period> <startdate>12-Oct-2010</startdate> <enddate>31-Oct-2010</enddate> </period> </row> <row id="prices"> <price>1209</price> <price>1109</price> <price>1129</price> <price>1359</price> <price>1369</price> </row> </grid>
========================= RESULT XML =========================
<?xml version="1.0" encoding="UTF-8"?> <grid> <row id="periods"> <period> <startdate>01-Sep-2010</startdate> <enddate>19-Sep-2010</enddate> </period> <period> <startdate>20-Sep-2010</startdate> <enddate>30-Sep-2010</enddate> </period> <period> <startdate>01-Oct-2010</startdate> <enddate>31-Oct-2010</enddate> </period> </row> <row id="prices"> <price>1209</price> <price>1109</price> <price>1359</price> </row> </grid>
Any help greatly appreciated.
-- Kevin
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Grouping adjacent element, Andrew Welch | Thread | RE: [xsl] Grouping adjacent element, Kevin Bird |
Re: [xsl] Grouping adjacent element, Andrew Welch | Date | Re: [xsl] Howto follow embedded Xpa, Hermann Stamm-Wilbra |
Month |