2016-03-17 2 views
3

Я написал выражение XQuery, которое имеет большой результат около 50 МБ и занимает несколько часов для вычисления. Я выполняю его в графическом интерфейсе BaseX, но это немного неудобно: он выводит результат в окно результатов, которое мне тогда нужно сохранить. В это время BaseX становится невосприимчивым и может потерпеть крах.Запись непосредственно из файла BaseX GUI

Есть ли способ напрямую записать результат в файл?

ответ

1

Посмотрите на BaseX' file module, который обеспечивает широкие функциональные возможности для чтения и записи из файлов и перемещения файловой системы.

Для вас будет интересен file:write($path as xs:string, $items as item()*) as empty-sequence(), который позволяет записать последовательность элементов в файл. Например:

file:write(
    '/tmp/output.xml', 
    <root>{ 
    for $i in 1 to 1000000 
    return <some-large-amount-of-data /> 
    }</root> 
) 

Если выход не хорошо сформированный XML, рассмотрим функции по file:write-binary, file:write-text и file:write-text-lines.

Еще одна альтернатива может быть записана в документы в базе данных вместо файлов. db:add и db:create из database module могут использоваться для добавления вычисленных результатов в текущую или новую базу данных.

+0

Thx, это прекрасно. – wvdz

Смежные вопросы