Как сохранить данные MarkLogic в CSV-файл с помощью xdmp: save - PullRequest
0 голосов
/ 08 мая 2018

Я хочу создать CSV-файл. Приведенный ниже код создает CSV-файл, но он не может добавить строку данных для новой строки.

Я что-то упустил?

Вот код:

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), ",")), "&#10;")}

return

xdmp:save($filename, $results, $option)

1 Ответ

0 голосов
/ 08 мая 2018

Я думаю, вам просто нужно немного перестроить код. Попробуйте это:

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, "&#10;") }, $option)

отредактировано для изменения "\n" на "&#10;"

...