2013-11-21 35 views
0

我是python的新手,我想知道如何獲取父標記中的子元素的大小或數量,例如participants。這個想法是在participants標籤內獲得participant的數量。如何使用python獲取XML標記中的子元素的大小/長度

這裏是XML:

<participants> 
    <participant> 
    <userId>James</userId> 
    <role>Author</role> 
    </participant> 
    <participant> 
    <userId>Alex</userId> 
    <role>Reader</role> 
    </participant> 
</participants> 

我使用XML:

import xml.etree.ElementTree as ET作爲模塊

ET分配dom = ET.fromstring(output)

到目前爲止,解析XML,我寫了以下代碼:

for participant in dom.iter('participant'): 
    userId = participant.find('userId').text 
    role = participant.find('role').text 

但我想獲得的participant數的大小/長度participants標籤,這就是我想要做的,但它並沒有給我長:

print 'length', dom.findall('participants').length 

輸出我想應該是:

length 2 
+0

如果<參加>是root爲什麼不只是做'打印LEN(根)' – Larry

回答

1
>>> dom.findall('participant') 
[<Element 'participant' at 0x10dd74090>, <Element 'participant' at 0x10dd74250>] 
>>> len(dom.findall('participant')) 
2 
+0

這也返回*** 0 *** –

+0

不,它不:http://codepad.org/yIaQjPq1 – VooDooNOFX

3

嘗試

print(len(dom.findall('participant'))) 
+0

這將返回0。 – VooDooNOFX

+0

這個返回*** 0 *** –

2

這應該給你長:

root = tree.getroot() 
length = len(root.findall('participant')) 
print length 
相關問題