Connecting Tech Pros Worldwide Forums | Help | Site Map

//b[1]//c gives different results if the first b is nested in anotherelement

yawnmoth
Guest
 
Posts: n/a
#1: Sep 14 '08
<a>
<b>
<c/><c/>
</b>
<b>
<c/><c/><c/>
</b>
<b>
<c/>
</b>
</a>

Doing //b[1]//c on that yields two items. If, however, I put the
first <b></bwithin a <d></d>, I get five items. My question is...
why?

Here's what I mean by "put the first <b></bwithin a <d></d>":

<a>
<d>
<b>
<c/><c/>
</b>
</d>
<b>
<c/><c/><c/>
</b>
<b>
<c/>
</b>
</a>

Why does that return 5 items when the first only returns 2?

David Carlisle
Guest
 
Posts: n/a
#2: Sep 14 '08

re: //b[1]//c gives different results if the first b is nested in anotherelement


yawnmoth wrote:
Quote:
<a>
<b>
<c/><c/>
</b>
<b>
<c/><c/><c/>
</b>
<b>
<c/>
</b>
</a>
>
Doing //b[1]//c on that yields two items. If, however, I put the
first <b></bwithin a <d></d>, I get five items. My question is...
why?
>
Here's what I mean by "put the first <b></bwithin a <d></d>":
>
<a>
<d>
<b>
<c/><c/>
</b>
</d>
<b>
<c/><c/><c/>
</b>
<b>
<c/>
</b>
</a>
>
Why does that return 5 items when the first only returns 2?

//b[1] means select all b that are the first b child of their parent.
If you want to select the first b descendant use
/descendant::b[1]

David


--
http://dpcarlisle.blogspot.com
Closed Thread