从BaseX GUI直接写入文件

时间:2016-03-17 17:27:00

标签: xquery basex

我编写了一个XQuery表达式,其结果大约为50MB,需要花费几个小时来计算。我在BaseX GUI中执行它,但这有点不方便:它将结果裁剪到结果窗口,然后我必须保存。此时,BaseX无法响应并可能崩溃。

有没有办法直接将结果写入文件?

1 个答案:

答案 0 :(得分: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-binaryfile:write-textfile:write-text-lines函数。

另一种替代方法可能是写入数据库中的文档而不是文件。来自database moduledb:adddb:create可用于将计算结果添加到当前或新数据库。