如何在多个标题元素而不是一个标题元素中返回数据?
返回此
<title>
Title 1
Title 2
Title 3
</title>
想要返回此
<title>Title 1</title>
<title>Title 2</title>
<title>Title 3</title>
代码
(: This gets coordinates from $latLon :)
let $result := for $coordinates in $latLon/location
let $lat := $coordinates/lat/text()
let $lon := $coordinates/lon/text()
(: This uses the coordinates to retrieve a title :)
let $data := titleDoc:getTitle($lat, $lon)
let $title := $data//div[@class="title"]/text()
return
<title>{$title}</title>
答案 0 :(得分:3)
正如@chrisis所说,如果不查看您的代码很难说,但我认为您需要for
而不是let
:
let $title := $data//div[@class="title"]/text()
return <title>{$title}</title>
let
生成一个包含所有文本节点的序列,并将它们放在<title>
元素中。这不是你想要的,你想迭代它们,为每一个创建一个title元素:
for $title in $data//div[@class="title"]/text()
return <title>{$title}</title>
答案 1 :(得分:2)
如果没有看到$ data的内容,很难回答。 但是这样的事情应该有效:
for $title in $data//div[@class="title"]
return <title>{data($title)}</title>