如何使用python计算特定于xml的元素数?

如何使用python计算特定于xml的元素数?,python,xml,Python,Xml,嗨,我想知道如何使用python计算XML中的特定元素数。 请参见下面的示例 如果我想计算第一个AAA下的BBB数量,我会怎么做? 正如你所看到的,在第一个AAA下有3个BBB <data> <AAA> -> The first AAA <CCC> <BBB>This</BBB> </CCC> <CCC>

嗨,我想知道如何使用python计算XML中的特定元素数。 请参见下面的示例

如果我想计算第一个AAA下的BBB数量,我会怎么做? 正如你所看到的,在第一个AAA下有3个BBB

<data>
    <AAA>  -> The first AAA
        <CCC>
            <BBB>This</BBB>
        </CCC>
        <CCC>  
            <BBB>is</BBB>
        </CCC>
        <CCC>
            <BBB>test1</BBB>
        </CCC>
    </AAA>

    <AAA>
        <CCC>
            <BBB>This is test</BBB>
        </CCC>
    </AAA>

    <AAA>
        <CCC>
            <BBB>222222</BBB>
        </CCC>
        <CCC>
            <BBB>333333</BBB>
        </CCC>      
    </AAA>
但即使没有错误,也不算数。 发生了什么?我需要一些建议。使用ElementTree

演示:

import xml.etree.ElementTree as ET
doc = ET.fromstring(data)

for AAA in doc.findall('AAA'):
    print len(AAA.findall('CCC'))
3
1
2
输出:

import xml.etree.ElementTree as ET
doc = ET.fromstring(data)

for AAA in doc.findall('AAA'):
    print len(AAA.findall('CCC'))
3
1
2
这对我很有用:

from xml.etree import ElementTree

xml_text = ElementTree.parse('your_file.xml')
dom = xml_text.getroot()
results = sum([1 for entry in dom.getiterator('BBB')])
print(results)

谢谢你,拉凯什。当使用.parse方法时,它也能很好地工作