[xquery-talk] filter function

David Carlisle davidc at nag.co.uk
Fri Jun 30 10:57:09 PDT 2006


  i mean this piece of code does not return paths from
  the file oredr.xml which satisfy my condition
  it returns
  <hh>
  filter()
  </hh>


what do you expect it to do?
I assume that it doesn't really return what you show, filter() but
rather
<h>
filter ($d,$d//order[vcd|book]/text())
</h>



It is just the literal text content of the direct element constructor so
is copied as text to the output. If you want it to be evaluated as an
XQuery expression then (as always) it needs to be inside {...} But then
you would just get an error message saying that filter() is an unknown
function (as XQuery does not have a function of that name).
let $d:=doc("order.xml")
return
<h>
{filter ($d,$d//order[vcd|book]/text())}
</h>

$ saxon8q f.xq
Error on line 4 column 40 of file:/c:/tmp/f.xq:
  XPST0017: XQuery static error in #...d,$d//order[vcd|book]/text())}#:
    Unknown system function filter()
Failed to compile query

David


More information about the talk mailing list