我在elementtree中使用了这段代码,它可以很好地与Python2.7配合使用。
我需要获取“x/y”节点下名为“a”的所有节点。

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元素树的节点没有iter()。
如何用python 2.6实现iter()?

最佳答案

请注意,python 2.6中有iter可用(甚至2.5-否则,在docs中会有一个通知),因此您不需要真正的替换。
但是,您可以使用findall

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

07-28 00:55
查看更多