使用 Exist-db 和 XSLTforms 将节点集插入到文档中

Inserting nodeset into a document with Exist-db and XSLTforms

我正在使用 XSLTforms 为非技术数据输入设置一个 exist-db 实例。我想做的事情听起来很简单,但我找不到它的文档,也没有其他人问过类似的问题,所以我猜我在这里遗漏了一些明显的东西。我想将我的 XSLTforms 实例中的节点集插入到预先存在的 xml 文件中,但不覆盖现有数据。

<xf:submission id="s03" method="put" nodeset="instance('template')/x/y" resource="../data/XX.xml" replace="none">

在 xpath 等方面工作正常,但用新实例替换了整个 xx.xml。我想要做的就是将我的实例添加到文档中。我尝试了多种方法来为插入创建 xpath 上下文,但这没有用。

我做错了什么? 谢谢 R

我记得 class 与 XForms Wikibook(一个很好的资源)的主要作者 Dan McCreary 一起,PUT 确实会覆盖资源,要遵循的模式是 POST 将结果发送到已保存的 XQuery,该 XQuery 接收有效负载并将其保存到数据库。

作为此模式的说明,请参阅 wikibook 的文章 Displaying Save Results,其中您将 save.xq 端点接收 POST 请求的负载、存储结果并报告关于结果。

@Joe Wicentowski 让我走上了正确的道路,但我缺少的是用于更新插入的简单 return 前语句:

let $update := update insert $formdata into $target

这允许我将节点集($formdata)插入到目标节点集($target)中,return 函数只是简单地传达成功或错误。