如何使用Python计算XML特定的元素编号?



嗨,我想知道如何使用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>

这是我计算这些的代码。

a=0
for AAA in root.findall('AAA')[a]:
for CCC in AAA.findall('CCC'):
for BBB in CCC.findall('BBB'):
count = BBB.count()
print(count)

但即使没有错误,它也不算数。 怎么了?我需要一些建议。

使用 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

这对我有用:

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)

最新更新