2

我正在使用 python 中的 xquery 更新并尝试将子元素拉出 xml 树并将它们作为新的父元素插入 DBXML 数据库中。使用以下 xquery,我试图迭代每个孩子,然后将孩子插回父集合中。

for $child in collection($items)/parent/path/to/child return (
    insert node $child into collection($items)
)

但是,会产生以下错误。

XmlQueryEvaluationError Error: Cannot perform an update that creates a persistent document with more than one document element, line 0, column

我也尝试使用变量值插入 xml,但定义了所有节点。产生同样的错误。

for $child in collection($items)/parent/path/to/child return (
    insert node <parent><item>{$child/item}</item></parent> into collection($items)
)
4

1 回答 1

1

我希望它是您不能 XQuery 更新集合的情况。

而不是fn:collection作为更新语句的上下文,您很可能必须提供单个文档节点或其他节点。

您的第一条语句实际上是child在集合中的每个文档节点中插入一些节点。

如果您想仅使用 XQuery 插入一个新文档,我不确定这在 DBXML 中是否可行:http: //docs.oracle.com/cd/E17276_01/html/intro_xml/modifyingdocuments.html

于 2014-08-10T22:27:48.150 回答