mar*_*riz 15 python xml lxml elementtree
我是元素树的新手,在这里我试图找到元素树中的元素数量.
from lxml import etree
root = etree.parse(open("file.xml",'r'))
Run Code Online (Sandbox Code Playgroud)
有没有办法找到root中元素的总数?
har*_*r07 16
找到所有目标元素(有一些方法可以做到这一点),然后使用内置函数len()
来获取计数.例如,如果您只想计算root的直接子元素:
from lxml import etree
doc = etree.parse("file.xml")
root = doc.getroot()
result = len(root.getchildren())
Run Code Online (Sandbox Code Playgroud)
或者,如果您要计算根元素中的所有元素:
result = len(root.xpath(".//*"))
Run Code Online (Sandbox Code Playgroud)
您不必将所有节点都加载到列表中,可以使用sum和延迟迭代:
from lxml import etree
root = etree.parse(open("file.xml",'r'))
count = sum(1 for _ in root.iter("*"))
Run Code Online (Sandbox Code Playgroud)