Ich bin ein Neuling in Python und habe mich gefragt, wie ich die Größe oder Anzahl der Unterelemente in einem übergeordneten Tag ermitteln kann, sagen wir participants. Die Idee ist, die Anzahl von participant innerhalb des participants -Tags zu ermitteln.

Hier ist die XML:

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

Ich benutze XML:

import xml.etree.ElementTree as ET als Modul

Und ET wird dom = ET.fromstring(output) zugewiesen

Um XML zu analysieren, habe ich bisher den folgenden Code geschrieben, der funktioniert:

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

Aber ich möchte die Größe / Länge der Anzahl von participant im participants -Tag ermitteln, und dies ist das, was ich versuche, aber es gibt mir nicht die Länge:

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

Die Ausgabe, die ich möchte, sollte sein:

length 2
0
Simple-Solution 21 Nov. 2013 im 12:47

3 Antworten

Beste Antwort
>>> dom.findall('participant')
[<Element 'participant' at 0x10dd74090>, <Element 'participant' at 0x10dd74250>]
>>> len(dom.findall('participant'))
2
1
VooDooNOFX 21 Nov. 2013 im 09:00

Dies sollte Ihnen die Länge geben:

root = tree.getroot()
length = len(root.findall('participant'))
print length
2
Vojtech Ruzicka 17 Juni 2016 im 15:25

Versuchen

print(len(dom.findall('participant')))
3
Leifingson 21 Nov. 2013 im 09:03