[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: dynamic xpath eval in xquery?
Hi James, There is no standard function in XQuery that will evaluate another XQuery stored in a string - although some XQuery implementations provide extension functions to do this. Depending on your needs, it's not too hard to write your own function to handle simple cases, like this: declare function local:evalPath($path as xs:string, $xml as node()*) as node()* { local:evalPathImpl(tokenize($path, "/"), $xml) }; declare function local:evalPathImpl($steps as xs:string*, $xml as node()*) as node()* { if(empty($steps)) then $xml else if($steps[1] = "") then local:evalPathImpl(subsequence($steps, 2), $xml/root()) else if(starts-with($steps[1], "@")) then local:evalPathImpl(subsequence($steps, 2), $xml/@*[name() = substring($steps[1], 2)]) else local:evalPathImpl(subsequence($steps, 2), $xml/*[name() = $steps[1]]) }; let $xml := document { <test><a><b attr="value"></b></a></test> } let $xpathstring := "/test/a/b/@attr" return local:evalPath($xpathstring, $xml) John James Fuller wrote: > given in xquery v1.0 > > let $xml := <test><a><b></b></a> > > let $xpathstring := ''test/a/b" > > return $xml/$xpathstring > > I know this is not possible ;) ... though I am having a brain cramp... > > wondering what the best approach for doing this type of thing in XQuery. > > tia, Jim Fuller > > _______________________________________________________________________ > > XML-DEV is a publicly archived, unmoderated list hosted by OASIS > to support XML implementation and development. To minimize > spam in the archives, you must subscribe before posting. > > [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/ > Or unsubscribe: xml-dev-unsubscribe@l... > subscribe: xml-dev-subscribe@l... > List archive: http://lists.xml.org/archives/xml-dev/ > List Guidelines: http://www.oasis-open.org/maillists/guidelines.php > -- John Snelson, Oracle Corporation Berkeley DB XML: http://www.oracle.com/database/berkeley-db/xml XQilla: http://xqilla.sourceforge.net
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] |
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|