[xquery-talk] restricting search to different nodes

Wolfgang Meier wolfgang at exist-db.org
Thu Jan 5 12:31:12 PST 2006

> This works well if the node sets are lying on the same level in the xml
> structure. But if I use something like this:
> for $doc in //text/body/(abstract | level/metadata1)[. &= 'searchTerm']
> return $doc/../..
> ... I either get the <text> or the <body> element as a result. But I always
> need the <text> element.

That happens because you return $doc/../.. You can either replace this 
by: $doc/ancestor::text or reformulate the main selection to return text:

for $doc in //text[body/(abstract | level/metadata1)[. &= 'searchTerm']]


More information about the talk mailing list