3
我想扁平化一個lxml etree(特別是HTML,如果它很重要)。我該如何獲得樹中所有元素的平面列表?lxml - 獲取元素的平面列表
我想扁平化一個lxml etree(特別是HTML,如果它很重要)。我該如何獲得樹中所有元素的平面列表?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]
接受列表理解: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://stackoverflow.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