BaseX возвращает разрывы строк между данными узла - PullRequest
1 голос
/ 19 июня 2010

Я использую BaseX в качестве базы данных на основе XML. Я делаю простой запрос, как

xquery for $Book in 
/Libraray/Literaturelist/Literature/Title return fn:data($Book)

Я получаю все заголовки, как строку, в которой нет разрывов строк.

Есть ли способ добавить разрывы строк с помощью XQuery после каждого узла, найденного запросом, для разделения данных? На самом деле это не зависит от моего XML-файла, потому что я не добавляю разрывы строк, жестко закодированные в тегах. ;)

Ответы [ 3 ]

2 голосов
/ 19 июня 2010

это зависит от того, как вы получаете результаты запроса.Самый элегантный способ - использовать итератор, как, например, показано в:

http://basex.org/code/QueryExample

Кроме того, вы можете расширить свой XQuery, возвращая дополнительную новую строку:

xquery for $Book in /Libbraray/Literaturelist/Literature/Title
return (fn:data($Book), '
')

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

Лучший, Кристиан

PS: не стесняйтесь использовать список рассылки basex-talk для более быстрой обратной связи.

0 голосов
/ 06 марта 2015

Спецификация XQuery 3.1 обеспечивает новый «адаптивный» режим сериализации, который выводит каждый результат XQuery на новую строку. Начиная с BaseX 8, этот режим используется как новый по умолчанию.

0 голосов
/ 14 мая 2012

Еще один способ добавления новой строки - явное использование ссылки на символ для новой строки:

xquery for $Book in /Libbraray/Literaturelist/Literature/Title
return (fn:data($Book), "
")
...