2012-02-07 6 views
11

各XQuery結果を新しい行に配置できますか?私は文書の冒頭に設定する属性があることを思い出したと思いましたが、覚えていません。 :/各XQuery結果を新しい行に配置

私はこの.xqファイルがあります:

<li>1. Zeus</li> 
<li>2. Fred</li> 
... 

されています:私は本当にのような何かをしたいとき、私は正しい結果を得るが、それらのすべてが単一のライン上にある

(: declare default element namespace "http://www.w3.org/2001/XMLSchema"; :) 
for $x at $i in doc("zoo.xml")//animal 
return <li>{$i}. {$x/name/text()}</li> 

をこれは可能ですか?あなたの答えに事前に感謝します! :)

答えて

19

...あなたがreturn節の第二部として、改行文字列を追加することができます。

(: declare default element namespace "http://www.w3.org/2001/XMLSchema"; :) 
for $x at $i in doc("zoo.xml")//animal 
return (<li>{$i}. {$x/name/text()}</li>, '&#xa;') 

を結果も連載されているかの方法は、特定のXQueryプロセッサに依存します。

4

使用しているXQueryエンジンに出力をインデントするオプションがあります。例えば。ゾルバで、インデントのオプションは、次のように機能します。

zorba -i -q 'for $x in 1 to 10 return <a/>' 
<?xml version="1.0" encoding="UTF-8"?> 
<a/> 
<a/> 
<a/> 
<a/> 
<a/> 
<a/> 
<a/> 
<a/> 
<a/> 
<a/> 
5

のXQuery 3.0は、照会プロローグで指定することができ、新たな連載オプションitem-separatorを、提供:

declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization"; 
declare option output:item-separator "&#xa;"; 

for $x at $i in doc("zoo.xml")//animal 
return <li>{$i}. {$x/name/text()}</li> 
3

XQuery 3.1 Serialization仕様は、新たな「適応」を提供します新しいXQueryの結果を新しい行に出力する直列化モード。

一部のXQueryプロセッサは、このモードを新しいデフォルトとして使用します。

関連する問題