0

file:serialize 関数を使用して、eXist-db を使用してコンテンツをファイルに書き込もうとしています。

これが私が使用しているコードです。これは単なるログインとシリアライズ関数の呼び出しです。someFunction は、何らかのコンテンツを含むノードを返すだけです。

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

私が得ている非常に役立つエラーは次のとおりです。

エラーが見つかりました

メッセージ: エラー null

私は Ubuntu でバージョン 1.4.0 を使用しており、ファイル モジュールを有効にしました (そしてビルドしました)。ここで何が欠けていますか?

ありがとう!

4

3 に答える 3

1

OPと同じ問題がありました。
serialize 関数の 3 番目のパラメータが間違っていることが判明しました。

これ:

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

これでなければなりません:

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

3 番目のパラメーターは、文字列ではなく、シーケンスでなければなりません。

それが役に立てば幸い。

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

まず、何かを除外しましょう。2 番目と 3 番目のパラメーターは、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 に答える