Re: [xsl] following-sibling question

Subject: Re: [xsl] following-sibling question
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Sat, 22 Dec 2007 15:20:53 +0530
Please try this

/items/item[(@id='a') or (@id='c') or (@id='f') or
(preceding-sibling::item[@id='a'] and
following-sibling::item[@id='c'] and not(@id='d'))]

(not tested)

On Dec 22, 2007 11:18 AM, Ken Tam <kentam@xxxxxxxxxxxxxxx> wrote:
> Hi all,
>
> I have the following XML sample data:
>
> <items>
>   <item id="a"/>
>   <item id="b"/>
>   <item id="c"/>
>   <item id="d"/>
>   <item id="e"/>
>   <item id="f"/>
> </items>
>
> and a search requirement to select nodes starting with id="a" passing id="c"
> with anything in between and ending in "f" but must not pass through "d".
> Thus, the above sample is not a match. Here is a sample that is a match:
>
> <items>
>   <item id="a"/>
>   <item id="b"/>
>   <item id="b"/>
>   <item id="e"/>
>   <item id="c"/>
>   <item id="e"/>
>   <item id="f"/>
> </items>
>
> I am not sure how to write the XPATH expression to filter on the "must not
> pass through "d" requirement. For example,
>
> /items/item[@id="a"]/following-sibling::item[@id="c"]/following-sibling::ite
> m[@id != "d"]/following-sibling::item[@id="f"]
>
> doesn't work as "e" is picked up.
>
> Thanks,
> Ken


-- 
Regards,
Mukul Gandhi

Current Thread