Мне нужно проверить, существует ли определенный тег в XML файле.
Например, я хочу посмотреть, существует ли тег в этом фрагменте:
<main>
<elem1/>
<elem2>Hi</elem2>
<elem3/>
...
</main>
В настоящее время я использую уродливый взлом с проверкой ошибок, например:
try:
if root.elem1.tag:
foo = elem1
except AttributeError:
foo = "error finding elem1"
Я также хочу настроить строку, если не удается найти node (т.е. "невозможно найти -tagname-" ).
Мне нужно проверить длинный список переменных, и я не хочу повторять код 100 раз.
Любые предложения?
Edit:
Вот отрезок фактического файла xml:
<main>
<asset name="Virtual Dvaered Unpresence">
<virtual/>
<presence>
<faction>Dvaered</faction>
<value>-1000.000000</value>
<range>0</range>
</presence>
</asset>
<asset name="Virtual Empire Small">
<virtual/>
<presence>
<faction>Empire</faction>
<value>100.000000</value>
<range>2</range>
</presence>
</asset>
</main>
Я хочу проверить, существует ли тег и, если да, получить содержимое.
Изменить править: Хорошо, я собираюсь объединить два ответа, но я могу голосовать только за них. К сожалению.
Редактировать 3: Связанный вопрос о XPath здесь: Python lxml (objectify): проблемы с Xpath