[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message]

Get collection context in XQuery

ricardo queiros ricardo.queiros at gmail.com
Fri Feb 6 12:07:33 PST 2009


  Get collection context in XQuery
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!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2007 All Rights Reserved.