1

我正在尝试更新节点的属性值并在一个查询中返回其先前的值,但我找不到解决方法。我使用BaseX作为我的 XML/XQuery 数据库。

现在我已经尝试过这样做:

/Root/Elem/properties/property[@id='17']/@format,
replace value of node /Root/Elem/properties/property[@id='17']/@format with 'URL'

还有这个:

for $prop in /Root/Elem/properties/property[@id='17']
    let $format := $prop/@format
    return (replace value of node $prop/@format with 'URL', $format)

以及其他多项测试,但它们都导致以下错误:

List expression: no updating expression allowed.

这是 BaseX 的限制还是在 XQuery 中不可能?

4

1 回答 1

3

XQuery Update不允许从更新查询返回结果。但是,您可以使用 BaseX 的专有update:output($seq)功能来做到这一点:

for $prop in /Root/Elem/properties/property[@id='17']
let $format := $prop/@format
return (replace value of node $format with 'URL', update:output($format))
于 2013-02-20T11:16:38.367 回答