[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
RE: [xml-dev] XQuery Puzzle
- From: "Michael Kay" <mike@saxonica.com>
- To: "'Fraser Goffin'" <goffinf@googlemail.com>,"'xml-dev'" <xml-dev@lists.xml.org>
- Date: Thu, 17 Apr 2008 09:50:32 +0100
> Sorry for asking an XQuery question here, if there is a more
> appropriate forum please let me know.
talk at x-query.com
>
> Anyway, a question relating to this simple XQuery has been
> circulating on another group, but I am puzzled as to whether
> using // on a sequence is valid (see the return clause
> below). I tried in a couple of XQuery parsers (Saxon9 + the
> one built into XML Spy) and both return no results ??
>
> let $set := (
> <div1>one </div1>,
> <div1 class="doc">two </div1>,
> <div1>three </div1>,
> <div1 class="doc">four </div1>,
> <gotcha>START</gotcha>,
> <div1>five </div1>
> )
> return $set//gotcha/preceding-sibling::div1[@class="doc"][1]
This is actually an XPath question. This path expands to
$set/descendant-or-self::node()/child::gotcha/preceding-sibling::div1[@class
="doc"][1]
Now, one of the elements in $set is a gotcha element, but none of them has a
child, or has a descendant with a child, named gotcha. Therefore the
expression selects nothing.
You want $set/self::gotcha/....
Michael Kay
http://www.saxonica.com/
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]