XQuery更新:插入表达式的目标节点不可更新

XQuery更新:插入表达式的目标节点不可更新,xquery,saxon,basex,xquery-update,Xquery,Saxon,Basex,Xquery Update,运行此代码 copy $foo := <foo /> modify ( insert node <bar /> into $foo ) return $foo copy$foo:= 修改( 将节点插入到$foo中 ) 返回$foo 在Saxon EE 9.6.0.7(表单18)中,我得到了错误 插入表达式的目标节点不可更新 BaseX返回 谁是对的?是否有其他方法可以修改任何xml表达式,而不仅仅是由doc()加载的xml表达式(可用于Saxon)?您需要设置选项

运行此代码

copy $foo := <foo />
modify (
  insert node <bar /> into $foo
)
return $foo
copy$foo:=
修改(
将节点插入到$foo中
)
返回$foo
在Saxon EE 9.6.0.7(表单18)中,我得到了错误

插入表达式的目标节点不可更新

BaseX返回


谁是对的?是否有其他方法可以修改任何xml表达式,而不仅仅是由doc()加载的xml表达式(可用于Saxon)?

您需要设置选项
-tree:linked
,以确保Saxon使用可更新的树模型运行。默认的树模型是不可变的。

感谢它现在的工作。顺便说一句,oxygen在这里提供了一个复选框“使用链接树模型”:Preferences/XML/XSLT-FO-XQuery/XQuery/Saxon-HE/PE/EE