我正在尝试创建一些项目的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>
虽然我想在我的项目列表前面进行描述..
我希望你明白我想要到达的地方;) 在此先感谢您的帮助!
答案 0 :(得分: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> }
答案 1 :(得分: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>