[xquery-talk] Position operator

Philippe Michiels philippe.michiels at gmail.com
Mon Jan 23 09:36:11 PST 2006


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