xsl-list
[Top] [All Lists]

Re: [xsl] Group consecutive elements based on child content

2007-09-07 09:09:14
This is an example of not well defined problem.

In

   <duration>
       <nights>11</nights>
       <price>111</price>
       <price>222</price>
       <price>333</price>
       <price>444</price>
       <price>-</price>
   </duration>
   <duration>
       <nights>14</nights>
       <price>999</price>
       <price>222</price>
       <price>333</price>
       <price>444</price>
       <price>-</price>
   </duration>


will the two

       <price>-</price>


elements match the corresponding previous

    <price>555</price>

element, or will they match the vrresponding following

       <price>456</price>

element?

In no way should both matchings be allowed, because then this
"quality" is no longer an equivalence relation -- it will follow that
555 = 456 and in fact that any two numbers are "equal"


The problem thus defined makes no sense.


Cheers,

Dimitre Novatchev



On 7/20/07, Kevin Bird 
<kevin(_dot_)bird(_at_)matrixdigitaldata(_dot_)co(_dot_)uk> wrote:
Hi

In the following structure I need to group consecutive <duration>
elements based on the concatenation of the <price> elements. The added
complication I have is that a price element can contain a number or
hyphen. The hyphen acts like a wildcard in that it can match the price
element in the preceding or following duration. A brief example of my
problem is below.

-------
INPUT
-------
<holidays>
   <duration>
       <nights>7</nights>
       <price>111</price>
       <price>222</price>
       <price>333</price>
       <price>444</price>
       <price>555</price>
   </duration>
   <duration>
       <nights>10</nights>
       <price>-</price>
       <price>222</price>
       <price>333</price>
       <price>444</price>
       <price>555</price>
   </duration>
   <duration>
       <nights>11</nights>
       <price>111</price>
       <price>222</price>
       <price>333</price>
       <price>444</price>
       <price>-</price>
   </duration>
   <duration>
       <nights>14</nights>
       <price>999</price>
       <price>222</price>
       <price>333</price>
       <price>444</price>
       <price>-</price>
   </duration>
   <duration>
       <nights>21</nights>
       <price>999</price>
       <price>456</price>
       <price>-</price>
       <price>123</price>
       <price>456</price>
   </duration>
   <duration>
       <nights>28</nights>
       <price>999</price>
       <price>456</price>
       <price>666</price>
       <price>123</price>
       <price>456</price>
   </duration>
</holidays>

--------------
DESIRED OUTPUT
--------------
<!-- <nights> text content is modified to reflect which durations have
been grouped -->
<holidays>
   <duration>
       <nights>7/10/11</nights>
       <price>111</price>
       <price>222</price>
       <price>333</price>
       <price>444</price>
       <price>555</price>
   </duration>
   <duration>
       <nights>14</nights>
       <price>999</price>
       <price>222</price>
       <price>333</price>
       <price>444</price>
       <price>-</price>
   </duration>
   <duration>
       <nights>21/28</nights>
       <price>999</price>
       <price>456</price>
       <price>666</price>
       <price>123</price>
       <price>456</price>
   </duration>
</holidays

Any help would be appreciated. I am using XSLT 2.0.

Thanks.

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




-- 
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play

--~------------------------------------------------------------------
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>
  • Re: [xsl] Group consecutive elements based on child content, Dimitre Novatchev <=