使用 file:serialize 通过 eXist db 写入文件

发布于 2024-10-24 18:18:50 字数 451 浏览 0 评论 0原文

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

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

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

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

发现错误

消息:错误为空

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

谢谢!

I'm trying to use the file:serialize function to write some content to a file using eXist-db.

Here's the code I'm using, it's just a login and the call of the serialize function.
someFunction just returns a node with some content.

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

The very helpful error I'm getting is:

Error found

Message: Error null

I'm using version 1.4.0 on Ubuntu, and I enabled the file module (and built it). What am I missing here?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

末蓝 2024-10-31 18:18:50

我和OP有同样的问题。
事实证明,序列化函数的第三个参数是错误的。

这:

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

应该是这样:

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

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

希望有帮助。

I had the same problem like OP.
Turns out your third parameter to the serialize function is wrong.

This:

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

Should be this:

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

As the third parameter has to be a sequence, not a string.

Hope it helps.

埋葬我深情 2024-10-31 18:18:50
let $null := xdb:login("/db", "*", "*")

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

let $null := xdb:login("/db", "*", "*")

First, let's rule something out: the 2nd and 3rd parameters should be the username and password of a dba user. See the docs for xmldb:login() and file:serialize().

苍风燃霜 2024-10-31 18:18:50

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

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>
};

This is the function in which I want to write the file, so I'm just trying to write some test content:

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>
};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文