我目前面临BaseX原生XML数据库的问题。
我有一个示例数据集,我想检查某个节点中是否存在某个属性,如果存在,则设置值为“true”。如果它不存在,我想插入一个新属性。这是我的单个节点的代码:
if(fn:exists(//Dataset[@attribute="2"]/@b)) then
replace value of node //Dataset[@attribute="2"]/@b with "true"
else
insert node (attribute { 'b' } { "CREATED!" }) into //Dataset[@attribute="2"]
我目前面临的问题是,我无法找到迭代“数据集”类型的所有节点的方法,并检查每个节点。它总是说“单个元素或文档,期望作为插入目标”
答案 0 :(得分:1)
好的,谷歌搜索了很长时间,但15分钟以上会让我免于发布这个问题:
for $dataset in //mondial/Dataset
let $DOCH := $dataset/@DOCH
return
if(fn:exists($DOCH)) then (
replace value of node $DOCH with "true")
else (
insert node (attribute DOCH {"true"}) into $dataset)