0
如果IsRecommended.text爲true,我希望打印值爲條件: ,它將只在相同的樹中打印值。 但現在的結果是它打印所有的值包括IsRecommended.text是錯誤的。Python:ElementTree如果其他條件
<Settings>
<Setting>
<Address>15:0</Address>
<Comments />
<Conditions />
<IsSingleEnded>true</IsSingleEnded>
<IsVisibilityExternal>false</IsVisibilityExternal>
<MetaDatas />
<SettingName>123</SettingName>
</Setting>
<Setting>
<Address>18:0</Address>
<Comments />
<Conditions />
<IsSingleEnded>true</IsSingleEnded>
<IsVisibilityExternal>false</IsVisibilityExternal>
<MetaDatas />
<SettingName>abc</SettingName>
</Setting>
<Strings>
<String>
<value>1</value>
<IsRecommended>false</IsRecommended>
</String>
<String>
<value>2</value>
<IsRecommended>true</IsRecommended>
</String>
</Strings>
</Setting>
</Settings>
這裏是我的代碼:
from xml.etree import ElementTree
with open('abc.xml', 'rt') as f:
tree = ElementTree.parse(f)
#address1 = tree.findall('.//Address')
#print address1.node.tag
with open("expected.txt", "w") as text_file:
for setting in tree.findall('.//Setting'):
address = setting.find('./Address')
setting_name = setting.find('./SettingName')
strings = setting.find('./Strings')
is_recommended = None
for string in strings.findall('./String'):
for is_recommended in string.findall('./IsRecommended'):
for value in strings.findall('.//value'):
if is_recommended is not None and is_recommended.text == 'true':
print value.text
text_file.write("{} {} {}\n".format(setting_name.text, address.text, value.text))
我的代碼中的任何錯誤?我怎麼解決這個問題?
對不起?你是什麼意思重複鍵?你在哪裏看到鑰匙? –
再一次,抱歉,但我不明白你在說什麼,你可能想先看看元素樹文檔 - https://docs.python.org/2/library/xml.etree.elementtree.html。它是一個用於xml解析的模塊。 –
''我看不到它在哪裏?你在哪裏看到? –