如何在不首先将文档输出到XML的情况下复制BaseX数据库中的文档

时间:2015-03-24 13:07:11

标签: xml xquery basex

我有一个BaseX数据库,里面有3个文件。第三个是通过前两个操作生成的。我需要做一些额外的操作来生成第4个文档,并希望我可以生成我的第三个文档的副本然后进行修改。

我知道如何使用复制和修改命令,但我不想返回xml,写入文件然后添加该文件。我想复制文档而不必保存任何新文件。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

basex的文档很差。但是,既然我必须做同样的事情,我就是这样做的。

给定名为config的数据库,其中包含名为a的文档;将a复制到b执行:

db:add("config", db:open("a"), "b")

值得注意的是,文档名称不必是唯一的。在我们的示例中,如果b已经存在,则会有两个名为b的文档。

如果b必须是唯一的,您可以在创建它之前将其删除。如果目标文档不存在,basex似乎不会抛出错误。

(
    db:delete("config", "b"),
    db:add("config", db:open("a"), "b")
)