我已经通过文档和 SO 检查了有关 BaseX 中 SET WRITEBACK TRUE
的信息,因为它写入数据更新的性质(根据文档)。
这是我遇到的问题:在一台计算机 (Ubuntu 15.10) 上,我安装了 BaseX,并且使用 GUI Standalone,我可以使用以下命令对存储在数据库中的 xml 文件进行适当的更新:
let $doc := doc("item1/item1.xml")
return
db:replace("item1", "item1.xml", '<item itemid="86712345"><data>more meta</data></item>')
如预期的那样,“item1.xml”中的任何内容都会被第三个参数覆盖。
更新:在 tomcat 管理器中,我取消部署 Basex823.war
,下载并部署 Basex831.war
,然后配置“web.xml”以添加未注释的“context-param"组如下:
<context-param>
<param-name>org.basex.writeback</param-name>
<param-value>true</param-value>
</context-param>
更新查询(特别是 replace
)现在似乎可以工作,而以前没有。谢谢阅读。我希望这对其他人有帮助。
最佳答案
问题似乎出在旧的 BaseX war 文件(在 Windows 7 下)。
我做了以下事情来解决这个问题:
- 下载的 war 文件(版本 831)
- 在 Tomcat 管理器网页中取消部署 823 war 文件
- 部署了 831 war 文件
- 添加了 context-param 标签 对于 org.basex.writeback 并将其设置为 true
- 在 XAMPP 控制面板中重新启动 Tomcat 服务器
关于tomcat - BaseX 更新问题还是设置错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34770213/