Thanks to both.<div>But to preserve hierarchy and extended my previous example:<br></div><div><br></div><div><span class="Apple-style-span" style="border-collapse: collapse; "><div>A</div><div> - 1.xml</div><div> - 2.xml</div>
<div>B</div><div> - 3.xml </div><div> C</div><div> - 4.xml</div><div><br></div><div>If my WHERE clause is evaluated to TRUE in documents 2.xml, 3.xml and 4.xml.</div><div>I would like to have the following result</div>
<div><br></div><div><span class="Apple-style-span" style="border-collapse: separate; "><RESULTS><br><A>2.xml<A><br><B>3.xml<C>4.xml</C></B></span></div><div><span class="Apple-style-span" style="border-collapse: separate; "></RESULTS></span><br>
</div><div><span class="Apple-style-span" style="border-collapse: separate;"><br></span></div><div><span class="Apple-style-span" style="border-collapse: separate;">or a id/idref approach:</span></div><div><span class="Apple-style-span" style="border-collapse: separate;"><br>
</span></div><div><span class="Apple-style-span" style="border-collapse: separate;"><span class="Apple-style-span" style="border-collapse: collapse; "><div><span class="Apple-style-span" style="border-collapse: separate; "><RESULTS id="1"><br>
<A id="2" refid="1">2.xml<A><br><B id="3" refid="1">3.xml</B></span></div><div><span class="Apple-style-span" style="border-collapse: separate;"><C id="4" refid="3">4.xml</C></span></div>
<div><span class="Apple-style-span" style="border-collapse: separate; "></RESULTS></span><br></div><div><span class="Apple-style-span" style="border-collapse: separate;"><br></span></div><div><span class="Apple-style-span" style="border-collapse: separate;">Thanks!!</span></div>
<div><span class="Apple-style-span" style="border-collapse: separate;"><br></span></div></span></span></div><div><span class="Apple-style-span" style="border-collapse: separate;"><br></span></div><div><br></div></span></div>
<div><br><div class="gmail_quote">2009/2/6 Wolfgang <span dir="ltr"><<a href="mailto:wolfgang@exist-db.org">wolfgang@exist-db.org</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="Ih2E3d"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I have his XQuery file:<br>
<br>
FOR $x in collection("A","B")<br>
WHERE ...<br>
RETURN ?<br>
<br>
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:<br>
<br>
<RESULTS><br>
<A>2.xml<A><br>
<B>3.xml</B><br>
</RESULTS><br>
<br>
What should i put in the RETURN clause?<br>
</blockquote>
<br></div>
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:<br>
<br>
for $m in (collection('/db/A'), collection('/db/B'))/*<br>
let $col := replace(document-uri(root($m)), '^.*/(.*)/[^/]+$', '$1')<br>
let $doc := replace(document-uri(root($m)), '^.*/([^/]+$)', '$1')<br>
return<br>
element { $col } { $doc }<br>
<br>
Note that fn:collection does only allow one parameter (though older versions of eXist accepted more for historical reasons).<br><font color="#888888">
<br>
Wolfgang<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Ricardo Queirós<br>
</div>