当我运行galax-run a.xq时,其中a.xq是
<html>
<body>
<ul>
{
for $x in doc("books.xml")/bookstore/book
return <li>{data($x/title)}</li>
}
</ul>
</body>
</html>
输出全部在一行上。如何保持格式化(新行和其他空格),如a.xq?
答案 0 :(得分:1)
原来xmllint --format a.xml将打印一个整齐格式化的a.xml版本。这就是我所需要的。你也可以管道到xmllint,如下所示:
galax-run a.xq | xmllint --format -
答案 1 :(得分:0)
您的问题是关于“Boundary Whitespace”,它被剥离或保留,具有实现定义的默认行为。但是,您可以使用边界空间声明覆盖默认值。要保留边界空白,请使用
declare boundary-space preserve;
在查询序言中。有关详细信息,请参阅http://www.w3.org/TR/xquery/#id-boundary-space-decls。
请注意,这将控制构造节点的布局。它们的外观也可能受序列化设置的影响。序列化程序可以选择重新引入边界空间,即使它在构造时被剥离。您必须查阅特定于实现的文档才能找到答案。