我正在尝试解析xml数据,以便在python 3中使用ElementTree库打印其内容。但是当我打印lst时,它会返回一个空列表。
错误:返回列表的空数组。
我的尝试:
import xml.etree.ElementTree as ET
data = '''
<data>
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank>4</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
</data>'''
tree = ET.fromstring(data)
lst = tree.findall('data/country')
print(lst)
#for item in lst:
# print('Country: ', item.get('name'))
提前致谢。
答案 0 :(得分:1)
树已经引用了根项<data>
,因此它不应该在您的路径语句中。只需找到&#34; country&#34;。
import xml.etree.ElementTree as ET
data = '''
<data>
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank>4</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
</data>'''
tree = ET.fromstring(data)
lst = tree.findall('data/country')
print(lst)
# check position in tree
print(tree.tag)
print(tree.findall('country'))