我希望通过提供纬度和经度从geoname api中检索timezoneId标记。
http://api.geonames.org/timezone?lat=39.758720&lng=116.041420&username=demo
它的结构是这样的:
<geonames>
<timezone tzversion="tzdata2012c">
<countryCode>CN</countryCode>
<countryName>China</countryName>
<lat>39.75872</lat>
<lng>116.04142</lng>
<timezoneId>Asia/Shanghai</timezoneId>
<dstOffset>8.0</dstOffset>
<gmtOffset>8.0</gmtOffset>
<rawOffset>8.0</rawOffset>
<time>2012-07-21 13:13</time>
<sunrise>2012-07-22 05:05</sunrise>
<sunset>2012-07-22 19:38</sunset>
</timezone>
</geonames>
我试图以这种方式获取元素:
document=minidom.parseString(urllib2.urlopen(DATA_SRC).read())
el=document.getElementsByTagName("geonames")[0].getElementsByTagName("timezone")[0].getElementsByTagName("timezoneId")[0]
print el.firstChild.nodeValue
显然getElementByTagName没有返回任何孩子......我做错了什么?
答案 0 :(得分:0)
我注意到你在最后一行拼写'noveValue'。这是拼写错误还是实际代码?
如果需要timezoneId,可以在树下继续getElementsByTagName。
document=minidom.parseString(urllib2.urlopen(DATA_SRC).read())
el=document.getElementsByTagName("geonames")[0].getElementsByTagName("timezone")[0].getElementsByTagName("timezoneId")[0]
print el.firstChild.nodeValue
你的el.firstChild.nodeValue
没有返回任何内容的原因是因为它里面没有文字,它返回一个空字符串。您需要继续在树下继续查看timezoneId的文本节点值。