这是我的XML文件:
<METAR>
<wind_dir_degrees>210</wind_dir_degrees>
<wind_speed_kt>14</wind_speed_kt>
<wind_gust_kt>22</wind_gust_kt>
</METAR>
这是我解析风向和速度的脚本。但是,阵风是一个条件值,并不总是出现在我的xml文件中。如果它确实存在,我想显示它的值,如果不存在,我想显示它。
import xml.etree.ElementTree as ET
from urllib import urlopen
link = urlopen('xml file')
tree = ET.parse(link)
root = tree.getroot()
data = root.findall('data/METAR')
for metar in data:
print metar.find('wind_dir').text
我尝试过类似的东西,但却出错了
data = root.findall('wind_gust_kt')
for metar in data:
if metar.find((wind_gust_kt') > 0:
print "Wind Gust: ", metar.find('wind_gust_kt').text
答案 0 :(得分:1)
您可以findtext
使用默认值''
,例如:
print "Wind Gust: ", meta.findtext('wind_gust_kt', '')
答案 1 :(得分:0)
当你遍历findall
函数的结果时,没有必要
再次致电find
- 你已经有了元素。
您可以将代码简化为以下内容:
tree = ET.parse(link)
for wind_gust in tree.findall('wind_gust_kt'):
print "Wind gust:", wind_gust.text
您可能一直在关注本教程:
http://docs.python.org/library/xml.etree.elementtree.html#tutorial
在那里的例子中,调用了循环变量的find
方法
为了找到循环元素的子元素。在你的情况下,
wind_gust
变量是您想要的元素,它没有子元素。