使用XQuery问题更新XML文件

使用XQuery问题更新XML文件,xquery,exist-db,xquery-update,Xquery,Exist Db,Xquery Update,我正在尝试使用以下XQuery(在eXide中)更新XML文件中的节点: 但我收到此错误,无法运行查询: 执行表达式org.exist.xquery.XPathException:err:XPST0003时发现错误意外标记:值[第4行第16列] 有人知道它有什么问题吗?非常感谢@dirkk提到的任何帮助和建议,eXist不支持XQUF 1.0,而是实现了XQUF的早期草案版本。但是,您仍然可以使用此代码执行您想要执行的操作: xquery version "3.0"; let $update

我正在尝试使用以下XQuery(在eXide中)更新XML文件中的节点:

但我收到此错误,无法运行查询:

执行表达式org.exist.xquery.XPathException:err:XPST0003时发现错误意外标记:值[第4行第16列]


有人知道它有什么问题吗?非常感谢@dirkk提到的任何帮助和建议

,eXist不支持XQUF 1.0,而是实现了XQUF的早期草案版本。但是,您仍然可以使用此代码执行您想要执行的操作:

xquery version "3.0";

let $update := doc('db/apps/xmlFiles/Customers.xml')//Customers[ID = 6]
return
    update value $update/LastName with 'Morris'

请注意,现有更新会立即应用于数据库中的节点,而不是XQUF 1.0,在XQUF 1.0中,会创建PUL(挂起的更新列表),然后在查询完成时应用。

是否正在寻找具有该ID的客户?如果是这样,它将是
//客户[ID=6]
。如果是一个孩子,
//Customers/*[ID=6]
作为未来的注意事项——任何删除了太多信息从而使之前给出的答案不适用的编辑在这里都被视为不好的形式/不符合犹太教义。如果这样的编辑是合适的(而不是问一个新的、单独的问题——这通常是正确的),那么应该通过添加额外的信息来完成,但保留旧的信息。无论如何,既然你已经做了我建议的更正,您的新错误是我无法在BaseX的XQUF实现中复制的(在那里工作得很好),因此我需要遵从熟悉eXist的人的指示……尽管有一个差异——我在我的版本中使用
db:open()
而不是
doc()
。很抱歉,我用更新版本替换旧代码时出错,我是这个论坛的新手,所以我不知道这个网站的规则和协议。我在代码中尝试了db:open(),但错误消息没有改变。嗯,这是非常奇怪和恼人的!
xquery version "3.0";

let $update := doc('db/apps/xmlFiles/Customers.xml')//Customers[ID = 6]
return
    update value $update/LastName with 'Morris'