Subject: Re: Selecting the node which have child without repition
From: Mukul Gandhi <gandhi.mukul@xxxxxxxxx>
Date: Fri, 19 Nov 2010 09:29:34 +0530
|
The following XPath expression seem to work:
//b[c][not(@name = following::b[c]/@name)]
On Thu, Nov 18, 2010 at 11:05 PM, Rashi Bhardwaj
<rashi.bhardwaj@xxxxxxxxx> wrote:
> Hi all,
>
> I am facing a problem while selecting a node through xpath....please help me
out
>
> Here is the input xml
>
> <test>
> B <a>
> B B <b name ='1'></b>
> B B <b name ='2'></b>
> B B <b name ='3'>
> B B B B <c></c>
> B B </b>
> B B <b name ='4'>
> B B B B <c></c>
> B B B B <c></c>
> B B </b>
> B </a>
> B <a>
> B <b name ='1'></b>
> B <b name ='2'>
> B B B <c></c>
> B </b>
> B <b name ='3'></b>
> B <b name ='4'>
> B B <c></c>
> B </b>
> B </a>
> </test>
>
> Xpath:
> //b[child::c][not(./@name=following-sibling::b/@name)]
>
> Output:
> b name="3"
> b name="4"
> b name="2"
> b name="4"
>
> What I want is to select all 'b' that have child 'c', provide the 'b'
> with same '@name' which are selected first should not be selected
> further.
>
> Desired output:
>
> Output:
> b name="3"
> b name="4"
> b name="2"
>
> As b with @name = 4 has already been searched, it should not come
> again in search.
>
> Please help me .....thanks a lott....
>
> Rashi
--
Regards,
Mukul Gandhi
|