XML : How to find the last previous-sibling equal to something and first following-sibling equal to something?

1/ I have a list of events with a date in a xml. I'd like to print each event with its date in a CSV form. If the date is 01/01/1900, then search the last previous sibling different of 01/01/1900

For example :

  <Events>  <Event>    <Date>17/01/2012</Date>    <Description>Event 1</Event>  </Event>  <Event>    <Date>01/01/1900</Date>    <Description>Event 2</Event>  </Event>  <Event>    <Date>01/01/1900</Date>    <Description>Event 3</Event>  </Event>  <Event>    <Date>20/02/2012</Date>    <Description>Event 4</Event>  </Event>  <Event>    <Date>01/01/1900</Date>    <Description>Event 5</Event>  </Event>  <Event>    <Date>01/01/1900</Date>    <Description>Event 6</Event>  </Event>  </Events>    

results in:

  17/01/2012;Event 1  17/01/2012;Event 2  17/01/2012;Event 3  20/02/2012;Event 4  20/02/2012;Event 5  20/02/2012;Event 6    

2/ I have a list of events with a date in a xml. I'd like to print each event with its date in a CSV form. If the date is 01/01/1900, then search the first next sibling different of 01/01/1900

For example :

  <Events>  <Event>    <Date>17/01/2012</Date>    <Description>Event 1</Event>  </Event>  <Event>    <Date>01/01/1900</Date>    <Description>Event 2</Event>  </Event>  <Event>    <Date>01/01/1900</Date>    <Description>Event 3</Event>  </Event>  <Event>    <Date>20/02/2012</Date>    <Description>Event 4</Event>  </Event>  <Event>    <Date>01/01/1900</Date>    <Description>Event 5</Event>  </Event>  <Event>    <Date>01/01/1900</Date>    <Description>Event 6</Event>  </Event>  <Event>    <Date>30/03/2012</Date>    <Description>Event 7</Event>  </Event>  </Events>    

results in:

  17/01/2012;Event 1  20/02/2012;Event 2  20/02/2012;Event 3  20/02/2012;Event 4  30/03/2012;Event 5  30/03/2012;Event 6  30/03/2012;Event 7    

I don't find the way to do a lookup of next or previous item equal to a value. Thanks for your help.

No comments:

Post a Comment