我正试图把我的脑袋包裹在lxml(这是新的)以及如何使用它来做我想做的事情。我有一个结构良好且有效的XML文件
<root>
<a>
<b>Text</b>
<c>More text</c>
</a>
<!-- some comment -->
<a>
<d id="10" />
</a>
</root>
像这样的事情。现在我想先看看孩子们的广度,我能想到的最好的就是这样:
for e in xml.getroot()[0].itersiblings() :
print(e.tag, e.attrib)
然后从那里拿走它。但是,这给了我所有元素,包括注释
a {}
<built-in function Comment> {}
a {}
如何跳过评论?是否有更好的方法来迭代节点的直接子节点?
一般来说,使用比较iterparse()
解析XML树与事件驱动的拉解析的建议是什么?
答案 0 :(得分:3)
这适合你的情况
for child in doc.getroot().iterchildren("*"):
print(child.tag, child.attrib)