Python Glossary English

все 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Сообщить о неточности