在使用ElementTree的XML配置文件時遇到問題。我想要一個簡單的方法來查找元素的文本,而不管它在XML樹中的位置。從文檔中所說的話,我應該可以用findtext()來做到這一點,但無論如何,我都會返回None。我在哪裏錯了?大家都在告訴我,XML在Python中處理起來非常簡單,但我除了麻煩之外什麼都沒有。Python ElementTree
configFileName = 'file.xml'
def configSet (x):
if os.path.exists(configFileName):
tree = ET.parse(configFileName)
root = tree.getroot()
return root.findtext(x)
hiTemp = configSet('hiTemp')
print hiTemp
和XML
<configData>
<units>
<temp>F</temp>
</units>
<pins>
<lights>1</lights>
<fan>2</fan>
<co2>3</co2>
</pins>
<events>
<airTemps>
<hiTemp>80</hiTemp>
<lowTemp>72</lowTemp>
<hiTempAlarm>84</hiTempAlarm>
</airTemps>
<CO2>
<co2Hi>1500</co2Hi>
<co2Low>1400</co2Low>
<co2Alarm>600</co2Alarm>
</CO2>
</events>
<settings>
<apikeys>
<prowl>
<apikey>None</apikey>
</prowl>
</apikeys>
</settings>
預期的結果
80
實際結果
None
這可能是'os.path.exists(configFileName)'返回'False'。添加'else:raise IOError(「File not found。」)'看看是否是這種情況。 – jonrsharpe
它正在找到該文件,因爲我可以返回根目錄並且它給了我父母的元素。 – jslay