Как найти количество элементов в дереве элементов в python?

Я новичок в дереве элементов, здесь я пытаюсь найти количество элементов в дереве элементов.

from lxml import etree root = etree.parse(open("file.xml",'r')) 

есть ли способ найти общее количество элементов в корне?

Найдите все целевые элементы (есть некоторые способы сделать это), а затем используйте встроенную функцию len() чтобы получить счет. Например, если вы хотите подсчитать только прямые дочерние элементы root:

 from lxml import etree doc = etree.parse("file.xml") root = doc.getroot() result = len(root.getchildren()) 

или, если вы хотите подсчитать все элементы внутри корневого элемента:

 result = len(root.xpath(".//*")) 

Вам не нужно загружать все узлы в список, вы можете использовать сумму и лениво перебирать:

 from lxml import etree root = etree.parse(open("file.xml",'r')) count = sum(1 for _ in root.iter("*")) 

Другой способ получить количество подэлементов:

 len(list(root)) 

вы можете найти счет каждого элемента следующим образом:

 from lxml import objectify file_root = objectify.parse('path/to/file').getroot() file_root.countchildren() # root's element count file_root.YourElementName.countchildren() # count of children in any element