我正在使用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)
)
我希望您不能使用XQuery更新集合。
您很可能必须提供单个文档节点或其他节点,而不是将fn:collection
作为更新语句的上下文。
你的第一个语句实际上是说在集合中的每个文档节点中插入一些child
节点。
如果您想只使用XQuery插入一个新文档,我不确定这在DBXML中是否可能:http://docs.oracle.com/cd/E17276_01/html/intro_xml/modifyingdocuments.html