2017-11-08 11 views
1

へのノード列を変換するための最良の方法は、この入力ドキュメントとバージョン9.8.0.6:のXQuery:私はサクソンを使用しています配列

<simple> 
    <hello>Hello World!</hello> 
    <number>42</number> 
    <keyword>abc</keyword> 
    <keyword>def</keyword> 
    <keyword>ghi</keyword> 
</simple> 

そして、このクエリ

xquery version "3.1"; 
fn:serialize(map{ 
    'greeting': data(/simple/hello), 
    'number': number(/simple/number), 
    'keywords': array{ for $k in /simple/keyword return data($k) } 
}, map{'method':'json', 'indent':true()}) 

出力である(予想通り) :

{ 
    "number":42, 
    "keywords": [ 
    "abc", 
    "def", 
    "ghi" 
    ], 
    "greeting":"Hello World!" 
} 

質問:

'keywords': array{ for $k in /simple/keyword return data($k) }私にとっては少し不器用なようです。これはそれを行う方法ですか?改善のための提案?

答えて

1

あなたは

array{data(/simple/keyword)} 

array{ for $k in /simple/keyword return data($k) } 

を減らすことができます

関連する問題