首页 文章

XQuery:只有一个具有相同名称的XML元素

提问于
浏览
0

我正在使用此URL获取给定位置的信息(纬度/经度):

http://maps.googleapis.com/maps/api/geocode/xml?latlng=48.845909,2.341762&sensor=true

我想要的是获得这个地方的基本地址(地址,城镇) . 所以我尝试了这个XQuery请求:

let $lat := 48.845909,
$lng := 2.341762,
$url := concat('http://maps.googleapis.com/maps/api/geocode/xml?latlng=',$lat,',',$lng,'&sensor=true'),
$resp := doc($url)
return $resp//result/formatted_address/string()

但是有了这个,我得到了XML结果的所有 formatted_address 元素,所以我得到:

12 Rue Royer-Collard, 75005 Paris, France
Val-de-Grâce, Paris, France
75005 Paris, France
5th arrondissement of Paris, Paris, France
Paris, France
Paris, France
Île-de-France, France
France

我只想要第一行 . 我该怎么办 ?

1 回答

  • 1

    只需使用[1]得到第一个元素:

    let $lat := 48.845909,
    $lng := 2.341762,
    $url := concat('http://maps.googleapis.com/maps/api/geocode/xml?latlng=',$lat,',',$lng,'&sensor=true'),
    $resp := doc($url)
    return ($resp//result/formatted_address/string())[1]
    

    或者将其移动到第一个结果(可能更快):

    let $lat := 48.845909,
    $lng := 2.341762,
    $url := concat('http://maps.googleapis.com/maps/api/geocode/xml?latlng=',$lat,',',$lng,'&sensor=true'),
    $resp := doc($url)
    return $resp//result[1]/formatted_address/string()
    

相关问题