lxml - 获取元素的平面列表
答
可以使用.iter()
方法,像这样:
from lxml import etree
xml = etree.XML('''<html><body>
<p>hi there</p><p>2nd paragraph</p>
</body></html>''')
# If you want to visit all of the descendants
for element in xml.iter():
print element.tag
# Or, if you want to have a list of all the descendents
all_elements = list(xml.iter())
print [element.tag for element in all_elements]
+0
接受列表理解:elements = [tree.iter()中元素的元素]。实际上,更优雅的是list(tree.iter())。 – 2014-10-06 20:02:22
http://lxml.de/tutorial.html#tree-iteration的 – 2014-10-06 19:47:26
可能重复[如何获得一个元素的所有子元素树与Python ElementTree?](http://*.com/questions/10408927/how-to-get-all-sub-elements-of-an-element-tree-with-python-elementtree) – CoryKramer 2014-10-06 19:47:46
退出投票关闭。我需要完整的,递归列出所有元素。即tree.flatten()。 – 2014-10-06 20:00:21