0

我有一个地理编码地点列表,但我需要在不同的地名词典(Geonames)中找到最佳匹配。我正在尝试使用 Geonames ( http://www.geonames.org/export/web-services.html#findNearby ) 中的 FindNearby api 来获取附近地点的列表,然后使用 xpath 查询来识别节点(和节点的兄弟姐妹)包含正确的地名和相应的 id。

在我的 Google 电子表格中,我有三列(数百行):

*placename, latitude, longitude*

*Sher-e-bangla Nagar, 23.7658, 90.37719*

*Shapahar, 25.1259, 88.58793*

...

在第四列中,我想使用 ImportXML 检索节点值的串联列表:

=JOIN(",",Importxml(CONCATENATE("http://api.geonames.org/findNearby?lat=",B2,"&lng=",C2,"&localCountry=true&radius=50&maxRows=100&username=demo"),"/geonames/geoname/toponymName[starts-with(.,'**Sher**')] |/geonames/geoname/toponymName[starts-with(.,'**Sher**')]/following-siblings::geonameId"))

这有效并返回“Sher-e-bangla Nagor,7697516”。但不是在我的表达式中使用“ Sher ”,有没有办法在 xpath 查询中引用单元格 A2?这将允许我将它带到所有行并将表达式指向正确的地名。理想情况下,我想使用 left(A2, 4) 搜索与 A 列中单元格的前四个字母匹配的 ToponymName 节点。

非常感谢!

4

1 回答 1

0

您可以在 xpath 上使用 concatenate,就像在 url 字符串上使用的一样:

concatenate("/geonames/geoname/toponymName[starts-with(.,'",A2,"')]|/geonames/geoname/toponymName[starts-with(.,'",A2,"')]/following-siblings::geonameId")
于 2014-09-16T20:15:13.373 回答