【发布时间】:2020-05-14 01:26:07
【问题描述】:
我有一个 excel 电子表格,其中有 25,000 多条带有纬度/经度坐标和其他数据的记录。我正在尝试使用 Excel VBA 脚本,使用以下美国人口普查 Web 服务链接(包括示例坐标),根据纬度/经度查找关联的县名称。
https://geo.fcc.gov/api/census/block/find?latitude=40.000&longitude=-90.000&format=xml
这将返回以下响应 xml。
<Response status="OK" executionTime="0">
<Block FIPS="170179601002012" bbox="-90.013605,39.996144,-89.994837,40.010663"/>
<County FIPS="17017" name="Cass"/>
<State FIPS="17" code="IL" name="Illinois"/>
</Response>
我遇到的问题是我需要访问 County 节点中包含的“名称”值(即本例中的“Cass”),并且该值将被复制到 County 列下的 Excel 电子表格中。有没有办法访问这个值? XML 响应不是我期望的标准格式(我是 XML 新手)<County>Cass</County>,所以我不确定如何从这个返回的响应中访问我需要的值。
脚本的整个 XML 连接和响应部分似乎工作正常,我只需要知道如何从相关节点的响应中获取值。
这是我目前所拥有的。任何帮助将不胜感激。如果您需要完整的代码,请告诉我。
standard XML connection stuff here...
XmlResponse = oXMLHTTP.responseText
'Process the XML to get County name
strXML = XmlResponse
Set XDoc = New MSXML2.DOMDocument60
If Not XDoc.LoadXML(XmlResponse) Then
Err.Raise XDoc.parseError.ErrorCode, , XDoc.parseError.reason
End If
Set xNode = XDoc.SelectSingleNode("/Response/County")
MsgBox xNode.Text
'Insert County name into Excel
Cells(i + 2, 14).Value = xNode.Text
我假设 xNode.Text 部分是我在从响应中选择正确部分时需要帮助的地方 (?)。
非常感谢!
【问题讨论】: