我使用 BaseX 作为基于 XML 的数据库。我做了一个简单的查询,比如
xquery for $Book in
/Libraray/Literaturelist/Literature/Title return fn:data($Book)
我得到所有标题,就像没有换行符的字符串一样。
有没有办法在查询找到的每个节点之后使用 XQuery 添加换行符以分隔数据?这并不真正依赖于我的 XML 文件,因为我没有在标签中添加硬编码的换行符。;)
我使用 BaseX 作为基于 XML 的数据库。我做了一个简单的查询,比如
xquery for $Book in
/Libraray/Literaturelist/Literature/Title return fn:data($Book)
我得到所有标题,就像没有换行符的字符串一样。
有没有办法在查询找到的每个节点之后使用 XQuery 添加换行符以分隔数据?这并不真正依赖于我的 XML 文件,因为我没有在标签中添加硬编码的换行符。;)
这取决于您如何检索查询结果。最优雅的方式是使用迭代器,例如:
http://basex.org/code/QueryExample
除此之外,您可以通过返回一个额外的换行符来扩展您的 XQuery:
xquery for $Book in /Libbraray/Literaturelist/Literature/Title
return (fn:data($Book), '
')
但是请注意,无法抑制额外输出的空格字符。
最好的,克里斯蒂安
PS:随意使用 basex-talk 邮件列表更快地获得反馈。
添加换行符的另一种方法是显式使用换行符的字符引用:
xquery for $Book in /Libbraray/Literaturelist/Literature/Title
return (fn:data($Book), " ")
XQuery 3.1 序列化规范提供了新的“自适应”序列化模式,它将每个 XQuery 结果输出到新的一行。从 BaseX 8 开始,此模式被用作新的默认值。