Re: [xsl] if a condition is not met

Subject: Re: [xsl] if a condition is not met
From: Abel Braaksma <abel.online@xxxxxxxxx>
Date: Tue, 15 May 2007 22:16:35 +0200
Michael Kay wrote:
Very pretty.

I was thinking in terms of grouping, time arithmetic, min/max...

Indeed and same here.
With the solution of George C. Bina in mind, I wanted to give the XSLT 2.0 approach a new try. Well, it ends up somewhere high in the obfuscated code bin, I believe. Here's the tree-walking algorithm from George applied in a single XPath 2.0 expression:


times/time[@time = ../../cells/cell[last()]/@endTime]/following-sibling::* |
times/time[@time = ../../cells/cell[1]/@startTime]/preceding-sibling::* |
times/time[@time = ../../cells/cell[@endTime != following-sibling::*[1]/@startTime]/@endTime]
/(self::* |
(following-sibling::*
[@time = ../../cells/cell[@startTime != preceding-sibling::*[1]/@endTime]
/@startTime][1]/preceding-sibling::*
except preceding-sibling::*))



I leave the explanation of this monster as an exercise to the reader ;) I just wanted to find out whether the OP's request was doable on one line (and I am sure it can be done more concise and hopefully without the expensive 'except' operator, I tried '>>' etc, but had some context-node problems).


Cheers,
-- Abel Braaksma

Current Thread