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,BridgerOn Thu, Sep 6, 2018 at 11:13 AM Marco Roling <marcoroling@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")returnfile:write($filename, local:process-data($data))=====