1

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

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

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

我究竟做错了什么?谢谢R

4

2 回答 2

0

我记得在我和XForms Wikibook(一个很好的资源)的主要作者 Dan McCreary 的课堂上,PUT 确实覆盖了资源,遵循的模式是将结果发布到已保存的 XQuery,该 XQuery 接收有效负载并保存它到数据库。

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

于 2021-05-20T22:57:45.007 回答
0

@Joe Wicentowski 让我走上了正确的道路,但我缺少的是更新插入的简单预返回语句:

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

这允许我将节点集($formdata)插入目标节点集($target),返回函数只是传达成功或错误。

于 2021-07-14T20:33:24.767 回答