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。根据您想要获得的内容,有两种可能性:

将元素包装在某个容器元素中以返回有效的 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 回答