问题描述
我正在尝试使用 ElementTree 遍历树中的所有节点.
我会这样做:
tree = ET.parse("/tmp/test.
问题是 child 是一个 Element 对象而不是 ElementTree 对象,所以我不能进一步研究它并递归迭代它的元素.有没有办法对根"进行不同的迭代,以便它迭代树中的顶级节点(直接子节点)并返回与根本身相同的类?
要遍历所有节点,请使用 方法/library/ElementTree
,不是根元素.
根是一个元素,就像树中的其他元素一样,只有它自己的属性和子元素的上下文.ElementTree
具有所有元素的上下文.
例如,给定这个
<数据><国家名称=列支敦士登"><rank>1</rank><年>2008</年><gdppc>141100</gdppc></国家><国家名称=新加坡"><rank>4</rank><年>2011</年><gdppc>59900</gdppc></国家><国家名称=巴拿马"><rank>68</rank><年>2011</年><gdppc>13600</gdppc></国家></数据>
您可以执行以下操作
>>>导入 <0x10b2d7e90 处的元素邻居"><0x10b2d7ed0 处的元素邻居"><0x10b2d7f10处的元素国家"><0x10b2d7f50处的元素等级"><0x10b2d7f90 处的元素年份"><0x10b2db050 处的元素邻居"><0x10b2db090 处的元素国家"><0x10b2db0d0处的元素等级"><0x10b2db110 处的元素年份"><0x10b2db190 处的元素邻居"><0x10b2db1d0 处的元素邻居">I am trying to iterate over all nodes in a tree using ElementTree.
I do something like:
tree = ET.parse("/tmp/test.
The problem is that child is an Element object and not ElementTree object, so I can't further look into it and recurse to iterate over its elements. Is there a way to iterate differently over "root" so that it iterates over the top level nodes in the tree (immediate children) and return the same class as root itself?
To iterate over all nodes, use the method on the , not the root Element.
The root is an Element, just like the other elements in the tree and only really has context of its own attributes and children. The ElementTree
has the context for all Elements.
For example, given this
<?
You can do the following
>>> import
这篇关于如何使用 ElementTree 在 Python 中递归迭代