1

我正在从 xml 中读取元素并将它们保存到数据库中。在我阅读要保存到数据库中的 xml 部分之前,我想检查该部分是否与我的案例相关。更确切地说,我会检查是否<Country>GERMANY</Country>存在。只有这样我才会阅读这部分并保存到数据库中。

这是示例 xml 文件

<?xml version="1.0"?>
<data>
 <info>
    <rank updated="yes">2</rank>
    <year>2008</year>
    <gdppc>141100</gdppc>
    <Country>SWEDEN</Country>        
 </info>
 <info>
    <rank updated="yes">5</rank>
    <year>2011</year>
    <gdppc>59900</gdppc>
    <Country>GERMANY</Country>        
 </info>
</data>

我如何在python中做到这一点?这是我的代码的开始

datei = ET.parse(settings.MEDIA_ROOT+'\\table.xml')
datas = datei.getroot()        
for info in data:
   #here i need to check if Country=="GERMANY"

首先检查元素是否具有所需值然后进入内部的最佳方法是什么?

4

2 回答 2

1

如果您只想知道文件包含<Country>GERMANY</Country>,则较短的版本是:

if any(i.find('Country').text == 'GERMANY' for i in datas.iterfind('info')):
   print('Found It!')
于 2013-10-15T07:28:01.880 回答
1
datei = ET.parse(settings.MEDIA_ROOT+'\\table.xml')
datas = datei.getroot()

for info in datas.findall('info'):
    if info.find('Country').text == 'GERMANY':
        # do whatever
        pass

有关更高级的内容,只需阅读http://docs.python.org/2/library/xml.etree.elementtree.html上的文档

于 2013-10-15T07:20:45.123 回答