Tengo este código con ElementTree que funciona bien con Python 2.7. Necesitaba obtener todos los nodos con el nombre "A" en el nodo "X/Y".Iter() de ElementTree equivalente en Python2.6
from xml.etree.ElementTree import ElementTree
verboseNode = topNode.find("X/Y")
nodes = list(verboseNode.iter("A"))
Sin embargo, cuando traté de ejecutarlo con Python 2.6, obtuve este error.
ionCalculateSkewConstraint.py", line 303, in getNodesWithAttribute
nodes = list(startNode.iter(nodeName))
AttributeError: _ElementInterface instance has no attribute 'iter'
Parece que Python 2.6 nodo de elementtree no tiene el iter(). ¿Cómo puedo implementar el iter() con Python 2.6?
Funciona bien, gracias. ¿Está bien, simplemente reemplace iter con findall? ¿Cuál sería la razón por la cual se introduce iter() cuando tenemos finadll()? – prosseek
@prosseek 'findall' es mucho más poderoso que' iter', y también potencialmente más lento. Por lo tanto, solo debe usar 'iter' cuando realmente desee todos los nodos. En muchos casos, solo desea un determinado conjunto de nodos, como '/ group/product/price'. Si ese es el caso, eche un vistazo a la documentación de 'findall' - podría ahorrarle mucho código de Python. – phihag
Entonces, ¿qué causa el error? Tengo el mismo problema: root.iter funciona en 2.7, provoca el error anterior en 2.6. Findall lo arregló. – thumbtackthief