[xquery-talk] Position operator

Ronald Bourret rpbourret at rpbourret.com
Mon Jan 23 00:48:21 PST 2006


For me, the important thing is that the [] operator binds more tightly 
than the / operator. The result is that, for a given descendant-or-self 
node, the sequence of title children is found, the first of these is 
taken (this is where the tighter binding matters), and then the sequence 
of first children is returned. Got it.

Thanks,

-- Ron

Philippe Michiels wrote:

> That's because the semantics of doc("book.xml")//title[1] corresponds with
> 
> doc("book.xml")/descendant-or-self::node()/child::title[1]
> 
> So you're asking for the first title-child of all descendant-or-self nodes of 
> the root.
> 
> However, (doc("book.xml")/descendant-or-self::node()/child::title)[1], first 
> evaluates the expression between parenthesis and then takes only the first 
> element of the result sequence.
> 
> -Ph
> 
> 
> On Monday 23 January 2006 09:22, Ronald Bourret wrote:
> 
>>I'm missing something obvious here.
>>
>>Suppose book.xml contains multiple title elements. Why does:
>>
>>    doc("book.xml")//title[1]
>>
>>return a sequence of all title elements and:
>>
>>    (doc("book.xml")//title)[1]
>>
>>return the first title element? I would have thought both queries would
>>return the first title element.
>>
>>Thanks,
>>
>>-- Ron
>>
>>_______________________________________________
>>talk at xquery.com
>>http://xquery.com/mailman/listinfo/talk
> 
> 
> 



More information about the talk mailing list