Hi Marco - Are you missing a separator ('\') in your $output variable, or in your `fn:concat($output, '\', 'marco.xml')`?
Here's a similar example that's working for me: ``` declare variable $data := (1, 2, 3, 4); declare variable $output := '/home/bridger/'; declare function local:process-data( $seq as item()* ) as item()* { <test created="{fn:current-dateTime()}"> { for $s in $data return( <item>{$s}</item> ) } </test> }; let $filename := "bridger.xml" return file:write($output || $filename, local:process-data($data)) ``` I hope this is helpful! Best, Bridger On Thu, Sep 6, 2018 at 11:13 AM Marco Roling <marcorol...@hotmail.com> wrote: > Dear all, > > I am new on the block here, and trying to find my way around BaseX, which > seems to meet my needs for my research on digital museum collection data > analysis. > > I have a very large collection of xml files (> 600000 files) that I am > querying, and I want to write the returned result immediately in a file. The > following xquery (see below) is not working, which probably comes as no > surprise to you all. > > But to get me started, I would like to have a simple example that works. > Any example would do. > > Hope anyone can help me out with this. > > Thanks very much, best, Marco. > > > ===== > > declare variable $data := collection(PRODRMCollectionItems); > declare variable $output := 'C:\DATAQUERY\BaseX\Q001\outputPROD'; > > (:This is where all the work is happening:) > declare function local:process-data ($nodes as item()*) as element (root) > { > <RMCollectionItemsDATA created="{current-dateTime()}"> > { > for $a in $nodes//artObjectGetResponse/artObject[objectNumber eq > 'NG-NM-1395-A'] > return > <item>{$a}</item> > } > </RMCollectionItemsDATA> > }; > > (:here we store stuff:) > let $filename := concat($output, "marco.xml") > return > file:write($filename, local:process-data($data)) > ===== > >