如何将多个元素的数据获取到 return?

How do I get the data to return with multiple elements?

如何在多个标题元素而不是一个标题元素中将数据获取到 return?

Returns 这个

<title>
    Title 1
    Title 2
    Title 3
</title>

想要return这个

<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>

不看 $data 的内容很难回答。 但是这样的事情应该有效:

for $title in $data//div[@class="title"]
return <title>{data($title)}</title>

正如@chrisis 所说,如果不查看您的代码就很难判断,但我认为您需要 for 而不是 let 此处:

  let $title := $data//div[@class="title"]/text()
  return <title>{$title}</title>

let 将所有文本节点组成一个序列,并将它们放在 <title> 元素中。这不是你想要的,你想要遍历它们,为每个创建一个标题元素:

  for $title in $data//div[@class="title"]/text()
  return <title>{$title}</title>