[xquery-talk] Using a string parameter as path expression
Michael Kay
mhk at mhk.me.uk
Mon Feb 14 18:52:49 PST 2005
You can't do this in standard XQuery. The ability to take a path expression
and interpret it at run-time is provided in some products by a vendor
extension function: in Saxon this is called saxon:evaluate(). The precise
rules for how it works (specifically, the rules for establishing the static
and dynamic context of the expression) will vary from one product to
another. You need to take particular care if the path expression contains
namespace prefixes.
You would typically write
return doc("sample.xml")/saxon:evaluate($path)
Michael Kay
http://www.saxonica.com/
_____
From: talk-bounces at xquery.com [mailto:talk-bounces at xquery.com] On Behalf Of
Mathias Seifert
Sent: 14 February 2005 18:31
To: talk at xquery.com
Subject: [xquery-talk] Using a string parameter as path expression
Hello,
I have a question for a rather simple task which I couldn't find any
solution to. What I want to have is a function that takes an xpath as string
parameter and then evaluates this xpath on a document. This could look
something like the following:
declare function local:evalPath($path as xs:string) as node()
{
let $a := doc("sample.xml")/$path
return $a
}
Unfortunately I couldn't get this simple function to work, so my question
now is: Is it possible with xquery at all to have a variable as the path
expression of a for/let clause? And if so, how?
Thanks in advance.
Mathias
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://xquery.com/pipermail/talk/attachments/20050214/9edfe639/attachment.htm
More information about the talk
mailing list