Я пытаюсь получить данные из XML-файла под ним. Для каждого типа объяснение должно быть рядом с ним.Пропустить XML-тег, если атрибут отсутствует
Например:
Оранжевый Они принадлежат к Citrus.They не может расти при температуре ниже Lemon Они принадлежат к Citrus.They не может расти при температуре ниже
<Fruits>
<Fruit>
<Family>Citrus</Family>
<Explanation>They belong to the Citrus.They cannot grow at a temperature below</Explanation>
<Type>Orange</Type>
<Type>Lemon</Type>
<Type>Lime</Type>
<Type>Grapefruit</Type>
</Fruit>
<Fruit>
<Family>Pomes</Family>
<Type>Apple</Type>
<Type>Pear</Type>
</Fruit>
</Fruits>
Это хорошо работает с кодом внизу. Однако для второй семьи фруктов у меня есть проблема, потому что нет пояснения.
import os
from xml.etree import ElementTree
file_name = "example.xml"
full_file = os.path.abspath(os.path.join("xml", file_name))
dom = ElementTree.parse(full_file)
Fruit = dom.findall("Fruit")
for f in Fruit:
Explanation = f.find("Explanation").text
Types = f.findall("Type")
for t in Types:
Type = t.text
print ("{0}, {1}".format(Type, Explanation))
Как я могу пропустить теги типа Fruit Family (Pomes), если атрибут Explanation отсутствует?
Отличное решение (+1). Pro tip: '// Fruit [./ Пояснение]' и '// Fruit [Объяснение]' эквивалентны. – kjhughes
@kjhughes, ура, исправлено. –