Подтвердить что ты не робот

ElementTree iter() эквивалентен в Python2.6

У меня есть этот код с ElementTree, который хорошо работает с Python 2.7. Мне нужно было получить все узлы с именем "A" под "X/Y" node.

from xml.etree.ElementTree import ElementTree

verboseNode = topNode.find("X/Y")
nodes = list(verboseNode.iter("A"))

Однако, когда я попытался запустить его с Python 2.6, я получил эту ошибку.

ionCalculateSkewConstraint.py", line 303, in getNodesWithAttribute
    nodes = list(startNode.iter(nodeName))
AttributeError: _ElementInterface instance has no attribute 'iter'

Похоже, что у Python 2.6 ElementTree node нет iter(). Как я могу реализовать iter() с Python 2.6?

4b9b3361

Ответ 1

Обратите внимание, что iter доступен в Python 2.6 (и даже 2.5 - в противном случае в docs будет уведомление.), поэтому вам не нужна замена.

Однако вы можете использовать findall:

def _iter_python26(node):
  return [node] + node.findall('.//*')