我试图在BaseX中运行以下查询,
let $c := doc('t.xq')//entry return (replace value of node $c/author with 'BaseX' )输入文件t.xq是
<entry>
<title>Transform expression example</title>
<author>BaseX Team</author>
</entry>我希望它返回修改过的数据,但是它执行而不返回任何数据。上面写着Updates are not written back
我怎样才能看到修改过的entry?哪些命令返回修改后的数据?
发布于 2015-06-14 08:20:50
引用自Update:
在BaseX中,所有更新都在数据库节点或主内存中执行。默认情况下,update操作不影响原始输入文件(信息字符串“更新不写回”显示在查询信息中以指示这一点)。存在以下将XML文档和二进制资源写入磁盘的解决方案:
但是,如果只需要获取update命令的输出,就可以将其复制到一个变量(内存中),并按如下方式转换该变量:
copy $c := doc('t.xq')//entry
modify (
replace value of node $c/author with 'BaseX'
)
return $c您还可以使用update,它是编写简单转换表达式的方便运算符。
doc('t.xq')//entry update replace value of node ./author with 'BaseX'https://stackoverflow.com/questions/30815736
复制相似问题