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 予期しないトークン: 値 [4 行目、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'

XQUF 1.0 では、PUL (保留中の更新リスト) が作成され、クエリの終了時に適用されるのとは対照的に、eXist では更新がデータベース内のノードに即座にインプレースで適用されることに注意してください。

于 2015-03-09T12:25:42.813 に答える