Reputation: 99
I want to generate csv file. Code below creates csv file, but it fails to append data row per new line.
Am I missing anything?
Here is the code:
xquery version "1.0-ml";
let $filename := "D:\csv-reports\test.csv"
let $directory-query := cts:directory-query("/searcdoc/")
let $uris := cts:uris((), (), $directory-query)
for $uri in $uris
let $additional := doc($uri)/searcdoc/access/additional/text()
let $des := doc($uri)/searcdoc/std/text()
let $option := <options xmlns="xdmp:save"><method>text</method></options>
let $results := text{((fn:string-join(($uri, $des, $additional), ",")), " ")}
return
xdmp:save($filename, $results, $option)
Upvotes: 2
Views: 1186
Reputation: 8422
I think you just need to re-arrange the code a bit. Try this:
xquery version "1.0-ml";
let $filename := "D:\csv-reports\test.csv"
let $directory-query := cts:directory-query("/searcdoc/")
let $option := <options xmlns="xdmp:save"><method>text</method></options>
let $uris := cts:uris((), (), $directory-query)
let $lines :=
for $uri in $uris
let $additional := doc($uri)/searcdoc/access/additional/text()
let $des := doc($uri)/searcdoc/std/text()
return fn:string-join(($uri, $des, $additional), ",")
return
xdmp:save($filename, text{ fn:string-join($lines, " ") }, $option)
edited to change "\n"
to " "
Upvotes: 1