0

我正在尝试使用 file:serialize 函数将一些内容写入使用 eXist-db 的文件。

这是我正在使用的代码,它只是一个登录和序列化函数的调用。someFunction 只是返回一个包含一些内容的节点。

让 $null := xdb:login("/db", " * ", " * "), $someBool := file:serialize(local:someFunction(),"test.txt","")

我得到的非常有用的错误是:

发现错误

消息:错误为空

我在 Ubuntu 上使用 1.4.0 版本,并且启用了文件模块(并构建了它)。我在这里想念什么?

谢谢!

4

3 回答 3

1

我有和OP一样的问题。
原来你的序列化函数的第三个参数是错误的。

这个:

$someBool := file:serialize(local:getSomething(),"test.txt","")

应该是这样的:

$someBool := file:serialize(local:getSomething(),"test.txt",())

因为第三个参数必须是一个序列,而不是一个字符串。

希望能帮助到你。

于 2011-06-14T13:02:42.973 回答
0
let $null := xdb:login("/db", "*", "*")

首先,让我们排除一下:第二个和第三个参数应该是 dba 用户的用户名和密码。请参阅xmldb:login()file:serialize()的文档。

于 2011-03-23T00:56:26.143 回答
0

这是我要写入文件的函数,所以我只是想写一些测试内容:

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(),"test.txt","") 
   return
    <test>Succes!</test>
};
于 2011-03-26T16:54:30.890 回答