Поиск индекса элемента ElementTree

Я использую модуль xml.etree.ElementTree для создания XML-документа с Python 3.1 из другого структурированного документа.

Какую функцию ElementTree можно использовать для возврата индекса существующего подэлемента?


person John    schedule 21.09.2010    source источник


Ответы (3)


Метод getchildren возвращает список подэлементов объекта Element. Затем вы можете использовать встроенный индексный метод списка.

>>> import xml.etree.ElementTree as ET
>>> root = ET.Element("html")
>>> head = ET.SubElement(root, "head")
>>> body = ET.SubElement(root, "body")
>>> root.getchildren().index(body)
1
person Mark    schedule 21.09.2010
comment
Спасибо, именно то, что я искал. - person John; 21.09.2010
comment
Просто на заметку - list(root).index(body) теперь правильный способ сделать это. getchildren() устарела - person aaaaaa; 30.12.2014

person    schedule
comment
вы можете добавить к этому несколько пояснений, т. е. сначала создать список с помощью getchildren(), а затем получить его индекс с помощью index() - person Brett Schneider; 04.01.2017

person    schedule
comment
Это работает в соответствии с моим требованием. Я получаю индекс, а один получает индекс, который я проверяю. Все, что написано выше, у меня не работало. - person user2160906; 05.01.2017
comment
Как это ответ на вопрос? Это кажется совершенно не связанным. - person mzjn; 08.01.2017
comment
@mzjn Здесь Print x и Print y - это индекс дерева элементов. Другой подход к поиску index. - person user2160906; 10.01.2017
comment
Никто не может взять ваш код как есть и протестировать его. Это не завершено. Не совсем понятно, как он отвечает на вопрос. Какое отношение Alarms_Validation имеет к тому, что спрашивают? - person mzjn; 10.01.2017
comment
@mzjn, вы абсолютно правы в том, что никто не может принять этот код как есть, но может использовать другой подход, чтобы найти индекс подэлементов. Здесь текст, относящийся к сигналам тревоги, пользователь не обращает внимания. Просто убедитесь, что X и Y являются индексами. Спасибо - person user2160906; 11.01.2017