问题描述
||
我正在尝试使用file:serialize函数使用eXist-db将某些内容写入文件。
这是我正在使用的代码,仅是登录名和对序列化函数的调用。
someFunction只是返回一个包含某些内容的节点。
让$ null:= xdb:login(\“ / db \”,
\“ * \”,\“ * \”),
$ someBool:= file:serialize(local:someFunction(),\“ test.txt \”,\“ \”)
我收到的非常有用的错误是:
发现错误
讯息:错误为空
我在Ubuntu上使用版本1.4.0,并且启用了文件模块(并构建了文件模块)。我在这里想念什么?
谢谢!
解决方法
我有和OP一样的问题。
原来你的第三个参数给序列化函数是错误的。
这个:
$someBool := file:serialize(local:getSomething(),\"test.txt\",\"\")
应该是这样的:
$someBool := file:serialize(local:getSomething(),())
由于第三个参数必须是序列,而不是字符串。
希望能帮助到你。
, let $null := xdb:login(\"/db\",\"*\",\"*\")
首先,让我们排除一些问题:第二个和第三个参数应该是dba用户的用户名和密码。请参阅xmldb:login()和file:serialize()的文档。
, 这是我要在其中写入文件的功能,因此我只是想编写一些测试内容:
declare function local:getSomething() as node(){
let $s := \"something\"
return
<test>{$s}</test>
};
declare function local:mainPage() as node()?
{
let $null := xdb:login(\"/db\",\"*\"),$someBool := file:serialize(local:getSomething(),\"\")
return
<test>Succes!</test>
};