|
[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message] Get collection context in XQueryricardo queiros ricardo.queiros at gmail.comFri Feb 6 12:07:33 PST 2009
Thanks to both.But to preserve hierarchy and extended my previous example: A - 1.xml - 2.xml B - 3.xml C - 4.xml If my WHERE clause is evaluated to TRUE in documents 2.xml, 3.xml and 4.xml. I would like to have the following result <RESULTS> <A>2.xml<A> <B>3.xml<C>4.xml</C></B> </RESULTS> or a id/idref approach: <RESULTS id="1"> <A id="2" refid="1">2.xml<A> <B id="3" refid="1">3.xml</B> <C id="4" refid="3">4.xml</C> </RESULTS> Thanks!! 2009/2/6 Wolfgang <http://x-query.com/mailman/listinfo/talk> > 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 > -- Ricardo Queirós -------------- next part -------------- An HTML attachment was scrubbed... URL: http://x-query.com/pipermail/talk/attachments/20090206/37d133df/attachment.htm
|
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
|






