0

いくつかのアイテムのxml出力を作成しようとしていますが、これは完璧に機能しますが、その前にblablaタグを追加しようとすると失敗します。

簡単だと思いますが、解決策が見つかりません。

私が使用しているコード:

let $data := content:sortContent(content:retrieveLastFM() union content:retrieveYoutube() union content:retrieveImgur() union content:retrieveFlickr() union content:retrieveNYTimes() union content:retrieveDiggTechnology() union content:retrieveDiggAmusement()),

$doc := <description>Blablabla</description> <items> {$data} </items>

return $doc

以下は機能します:

$doc := <items>{$data}</items> 

アイテムリストの前に説明が欲しいのですが。

私がここに到達しようとしていることを理解していただければ幸いです;)助けてくれてありがとう!

4

2 に答える 2

2

ノードのシーケンスをに割り当てようとします$doc。これは、次の方法で明示的に行う必要があります,

let $data := ...,
    $doc  := (<description>Blablabla</description>, <items> {$data} </items>)
return $doc

別の可能性は、両方のノードを別の要素またはノード内にラップするdocumentことです(とにかく変数名が示すように):

    $doc  := <doc><description>Blablabla</description><items> {$data} </items></doc>

また

    $doc  := document { <description>Blablabla</description>, <items> {$data} </items> }
于 2012-05-01T11:31:14.073 に答える
0

クエリは有効なXMLを出力しません。取得したいものに応じて、2つの可能性があります。

要素をコンテナ要素でラップして、有効なXMLを返します。

$doc := <container><description>Blablabla</description> <items> {$data} </items></container>

どちらが

<container>
  <description>Blablabla</description>
  <items>somedata</items>
</container>

または、XMLノードのシーケンスを返すこともできます。

$doc := (<description>Blablabla</description>, <items> {$data} </items>)

どちらが

<description>Blablabla</description>
<items>1</items>
<description>Blablabla</description>
<items>2</items>
<description>Blablabla</description>
<items>3</items>
于 2012-05-01T11:28:03.780 に答える