我正在BaseX 7.9上执行以下XQuery代码,并且能够在结果窗口中看到插入。我甚至在关闭并重新打开集合后看到了新节点。但是,当我转到文件目录时,我发现它还没有被修改。那么,我怎样才能使插入反映在文件上呢? BaseX如何处理插入命令,因此它在数据库的上下文中是持久的,而不是在文件的上下文中?
let $up := <Employee Name="Joe">
<Personal>
<SSN>666-66-1234</SSN>
</Personal>
<StaffInfo>
<Position>Doctor</Position>
<AccountableTo>Jeff</AccountableTo>
</StaffInfo>
</Employee>
return insert node $up as last into doc('office')/Staff
答案 0 :(得分:3)
BaseX数据库对应于它们创建的XML文件,但是采用特殊编码,以提高某些索引的高查询性能。使用XQuery Update更新数据库时,原始文件不会自动更新(因此,从数据库中序列化XML)。
使用更新后,导出数据库
命令提示符和EXPORT
命令:
EXPORT [path]
Export database to XML.
图形用户界面以及数据库下的菜单栏中的导出对话框,导出。
答案 1 :(得分:2)
默认情况下,更新不会反映在数据库外部的XML文档中。但是,可以通过command-line flag -U或选项WRITEBACK强制执行更新。