如何在Zorba XQuery中添加属性?

时间:2014-03-06 10:38:43

标签: xml xpath xquery zorba

我有一个名为entity的根节点的XML文档。对于每个文档,我想计算其名称为tender的节点数,并将其作为属性添加到entity

import module namespace file = "http://expath.org/ns/file";

for $file in file:list("../api/entity/p/", true(), "??????.xml")
let $doc := doc(concat("../api/entity/p/", $file))
return
    update insert attribute number_of_tenders {count($doc//tender)} into $doc/entity

我关注http://exist-db.org/exist/apps/doc/update_ext.xml,这不是Zorba,但我猜这是标准的XQuery。

我收到错误

6,69: static error [err:XPST0003]: invalid expression: syntax error, unexpected expression (missing comma "," between expressions?)

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我怀疑您的更新声明对Zorba不正确。 eXist实现了XQuery Update 1.0的早期草案。我相信Zorba正确地实现了XQuery Update 1.0规范,因此您的更新应该符合这一点:http://www.w3.org/TR/xquery-update-10/

也许是这样的:

for $file in file:list("../api/entity/p/", true(), "??????.xml")
let $doc := doc(concat("../api/entity/p/", $file))
return
    insert node attribute number_of_tenders {count($doc//tender)} into $doc/entity

特别是阅读http://www.w3.org/TR/xquery-update-10/#id-insert