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