xsl-list
[Top] [All Lists]

[xsl] Grouping adjacent elements by value - within a range

2010-08-13 04:36:17
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



--~------------------------------------------------------------------
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>