Python xml .etree.ElementTree проблема, Element.tag дает мне больше, чем просто имя тега - PullRequest
0 голосов
/ 03 августа 2020

У меня много проблем с выполнением такой простой задачи, как получение тега элемента из файла XML. Это элемент с удаленной конфиденциальной информацией:

<FIXML xmlns="AAA/AAAAA-5-0-AAA" v="AAA.5.AAAA" xv="111" cv="AAA" s="2013-10-14">

Я попытался получить тег этого элемента с помощью этой простой строки кода:

tag1 = root.tag

И по какой-то причине это ведет себя не так, как ожидалось. Он дает мне это значение:

{AAA/AAAAA-5-0-AAA}FIXML

Он прикрепляет к нему значение первого атрибута в виде префикса в фигурных скобках? Зачем он это делает? Я просто хочу, чтобы он возвращал FI XML и ничего больше, что, согласно документации здесь , - это то, что я понял. Есть идеи?

Python версия: 3,7

1 Ответ

0 голосов
/ 07 августа 2020

Пользователь mzjn был здесь прав, я не осознавал, что также были возвращены пространства имен. Я решил эту проблему, удалив пространство имен:

# Strip namespace off of root tag
if '}' in tag:
    tag = tag.split('}', 1)[1]

Это привело к предполагаемому результату, удалив все после закрывающего тега. Очевидно, это предполагает отсутствие символа} в самом теге или пространстве имен.

...