|
[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message] Get collection context in XQueryWolfgang wolfgang at exist-db.orgFri Feb 6 12:53:27 PST 2009
> I have his XQuery file: > > FOR $x in collection("A","B") > WHERE ... > RETURN ? > > If, for example, only the 2.xml and 3.xml were evaluate for TRUE in the > WHERE clause, i want to obtain the following XML data: > > <RESULTS> > <A>2.xml<A> > <B>3.xml</B> > </RESULTS> > > What should i put in the RETURN clause? Function document-uri returns the URI of the document, which - for eXist - is the same as the collection path. Using standard xquery functions, you could extract the collection and document name as follows: for $m in (collection('/db/A'), collection('/db/B'))/* let $col := replace(document-uri(root($m)), '^.*/(.*)/[^/]+$', '$1') let $doc := replace(document-uri(root($m)), '^.*/([^/]+$)', '$1') return element { $col } { $doc } Note that fn:collection does only allow one parameter (though older versions of eXist accepted more for historical reasons). Wolfgang
|
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
|






