我试图从3个不同的xml文件中找到的ID中找到一个特定的总和。 总和将始终是唯一的,xml文件中的其他3个元素值不会加在一起
我的xml文件如下所示:
水果档案:
...
-<Fruits>
<FruitID>1000</FruitID>
...
</Fruits>
...
原产国文件:
...
-<Country>
<CountryID>2000</CountryID>
...
</Country>
...
公司文件:
...
-<Corporation>
<CorporationID>5000</CorporationID>
...
</Corporation>
...
这是我的python代码:
import xml.etree.ElementTree as ET
import urllib.request as ur
url_fruits = 'fruits-url\fruits.xml'
url_countries = 'countries-url\countries.xml'
url_corporations = 'corporations-url\corporations.xml'
fp_fruits = ur.urlopen(url_fruits)
tree_fruits = ET.parse(fp_fruits)
fruits = tree_fruits.getroot()
fp_countries = ur.urlopen(url_countries)
tree_countries = ET.parse(fp_countries)
countries = tree_countries.getroot()
fp_domain = ur.urlopen(url_corporations)
tree_domain = ET.parse(fp_corporations)
corporations = tree_corporations.getroot()
result = None
ID_userinput = input('What ID should be translated to fruit id?')
if ID_userinput == '':
pass
else:
for child in (fruits,countries, corporations):
if int(ID_userinput) == int((child.find('FruitID').text) + (child.find('CountryID').text) + (child.find('CorporationID').text):
result = child.find('FruitID')
else:
pass
print(result)
这总是会产生错误。 我没有找到正确的语法来同时遍历多个xml文件和所有可能的组合。 有解决办法吗
谢谢并致以最诚挚的问候, 斯特凡
要了解这里发生了什么,让我们展开循环:
另外,摆脱无用的
else
,这给了我们:让我们看看这些
if
语句中的第一个:fruits.find('CountryID')
会给你什么?您的文件是否包含国家ID?如果没有,这就可以解释为什么您会得到None
(然后当您尝试访问.text
时会出现错误)相反,您需要在每种类型的ID上嵌套循环
比如:
还有很多方法可以进一步改进,例如,您可以在找到的第一个结果时退出所有这些循环,而不是迭代所有剩余的组合
相关问题 更多 >
编程相关推荐