1

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>

出力はすべて 1 行です。a.xq のようにフォーマット (改行やその他の空白) を維持するにはどうすればよいですか?

4

2 に答える 2

0

あなたの質問は、実装で定義されたデフォルトの動作で、削除または保持される「境界空白」に関するものです。ただし、境界空間宣言を使用してデフォルトをオーバーライドできます。境界の空白を保持するには、次を使用します

declare boundary-space preserve;

クエリのプロローグで。詳細については、 http://www.w3.org/TR/xquery/#id-boundary-space-declsを参照してください。

これは、構築されたノードのレイアウトを管理することに注意してください。また、シリアル化の設定によって外観が影響を受ける場合があります。シリアライザーには、構築時に削除された場合でも、境界スペースを再導入するオプションがある場合があります。確認するには、実装固有のドキュメントを参照する必要があります。

于 2012-11-26T08:41:09.930 に答える