все Python 3до 3.9Удалено из стандартной библиотекифункция
xml.etree.ElementTree.Element.getchildren()
удалено
Возвращал список прямых потомков XML-элемента. Удалён в Python 3.9 — используйте list(elem) или цикл for по элементу.
Синтаксис
elem.getchildren() # до 3.9
Элемент ElementTree сам ведёт себя как последовательность своих потомков, так что отдельный метод был лишним. Его объявили устаревшим ещё в Python 3.2, а в 3.9 убрали вместе с getiterator(). Как переписать: elem.getchildren() → list(elem); если список не нужен, обходите прямо: for child in elem. Доступ по индексу тоже работает: elem[0], len(elem). Для обхода всех уровней вложенности есть elem.iter().
Примеры
# Python 3.9+
import xml.etree.ElementTree as ET
root = ET.fromstring('<r><a/><b/></r>')
try:
root.getchildren()
except AttributeError as e:
print(type(e).__name__) # → AttributeError
# Python 3.9+
import xml.etree.ElementTree as ET
root = ET.fromstring('<r><a/><b/></r>')
print([child.tag for child in root]) # → ['a', 'b']
print(len(root), root[0].tag) # → 2 a
import xml.etree.ElementTree as ET
root = ET.fromstring('<r><a/><b/></r>')
print([child.tag for child in root.getchildren()]) # → ['a', 'b']
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности