0

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

xquery version "3.0";

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

但我收到此错误,阻止我运行查询:

执行表达式时发现错误:org.exist.xquery.XPathException: err:XPST0003 unexpected token: value [at line 4, column 16]

有谁知道这可能是什么问题?任何帮助和建议将不胜感激

4

1 回答 1

0

正如@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'

请注意,在 eXist 中,更新立即就地应用于数据库中的节点,这与 XQUF 1.0 不同,在 XQUF 1.0 中创建 PUL(待处理更新列表),然后在查询完成时应用。

于 2015-03-09T12:25:42.813 回答