我在
Windows 64位计算机上使用
Python 3.4.
我目前有一个xml文件,它有多个层次结构. xml树中有许多名称为“paragraph”的元素.但他们可能处于不同的等级制度.
有没有办法以简单的方式计算这些元素的数量?遍历整棵树似乎太费时间了.
最佳答案 如果您使用
lxml.etree
,那么您将获得完整的XPath支持并可以使用
count()
:
import lxml.etree as ET
tree = ET.parse(xml)
paragraphs = tree.xpath('count(//p)')
print(paragraphs)
在xml.etree.ElementTree
中,由于limited XPath support,你必须在Python中通过findall()
和len()来完成它:
import xml.etree.ElementTree as ET
tree = ET.parse(xml)
paragraphs = tree.findall('//p')
print(len(paragraphs))