Hello Christian,

Thanks a lot, this is exactly what I needed. I saw it several times when
reading the docs, and for some reason I thought it would give me the
filesystem path to the database...
(just in case, the reference for Google / mailing list archives:
https://docs.basex.org/wiki/Databases#XML_Documents)

Best,
- Tim

On Sun, Dec 12, 2021 at 12:03 AM Christian Grün <christian.gr...@gmail.com>
wrote:

> Hi Tim,
>
> Did you try db:path?
>
> All the best,
> Christian
>
>
>
> Timothée <timog...@gmail.com> schrieb am So., 12. Dez. 2021, 04:39:
>
>> Hello,
>>
>> I am trying to build a web application, powered by data served through
>> BaseX.
>> One of the use cases I have is that I want to find all "documents" that
>> match a xquery.
>>
>> I have the following in a RESTXQ file:
>>
>> declare
>>   %rest:path("filter_by_author")
>>   %rest:GET
>>   %rest:query-param("name", "{$name}")
>>   function page:by_author($name as xs:string) {
>>     let $docs := db:node-id(db:open("sp")//head/meta[@name='author' and
>> contains(lower-case(@content), lower-case(web:decode-url($name)))]) return
>>     <response>
>>         {for $node_id in distinct-values($docs) return <title
>> value="{$node_id}" />}
>>     </response>
>> };
>>
>> As expected, this does not work because it returns the node IDs. How can
>> I get the "document ID" or "document path" from a node? I understand XQuery
>> does not know about files in a collection (I found the following thread /
>> message in the archives about it:
>> https://mailman.uni-konstanz.de/pipermail/basex-talk/2010-July/000499.html)
>> - but is there a "db" function that would allow me to do it?
>>
>> Thanks for your help,
>> - Tim
>>
>

Reply via email to