использование файла: сериализация для записи файлов с помощью eXist db - PullRequest
0 голосов
/ 21 марта 2011

Я пытаюсь использовать функцию file: serialize для записи содержимого в файл с помощью eXist-db.

Вот код, который я использую, это просто логин и вызов функции сериализации. someFunction просто возвращает узел с некоторым содержимым.

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

Очень полезная ошибка, которую я получаю:

Обнаружена ошибка

Сообщение: ошибка null

Я использую версию 1.4.0 в Ubuntu, и я включил файловый модуль (и собрал его). Что мне здесь не хватает?

Спасибо!

Ответы [ 3 ]

1 голос
/ 14 июня 2011

У меня была такая же проблема, как у OP.
Оказывается, ваш третий параметр в функции сериализации неверен.

Это:

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

Должно быть так:

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

Поскольку третий параметр должен быть последовательностью, а не строкой.

Надеюсь, это поможет.

0 голосов
/ 26 марта 2011

Это функция, в которой я хочу записать файл, поэтому я просто пытаюсь написать тестовый контент:

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>
};
0 голосов
/ 23 марта 2011
let $null := xdb:login("/db", "*", "*")

Во-первых, давайте кое-что исключим: 2-й и 3-й параметры должны быть именем пользователя и паролем пользователя dba.См. Документы для xmldb: login () и file: serialize () .

...