当我运行 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 中的格式(新行和其他空格)?
最佳答案
您的问题是关于“Boundary Whitespace ”,它要么被删除,要么被保留,并具有实现定义的默认行为。但是,您可以使用边界空间声明来覆盖默认值。为了保留边界空白,请使用
declare boundary-space preserve;
在查询序言中。请参阅http://www.w3.org/TR/xquery/#id-boundary-space-decls了解详情。
请注意,这控制构造节点的布局。它们的外观也可能受到序列化设置的影响。串行器可以选择重新引入边界空间,即使它在构造时被剥离。您必须查阅特定于实现的文档才能找到答案。
关于html - 在 XQuery HTML 输出中保留空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13556328/