Mam następujący plik XML jako wejście:Uzyskiwanie wszystkich wystąpień węzła potomnego za pomocą xml.etree.ElementTree
<Test>
<callEvents>
<moc>
<causeForTermination>0</causeForTermination>
<serviceCode>
<teleServiceCode>11</teleServiceCode>
</serviceCode>
<dialledDigits>5555555</dialledDigits>
<connectedNumber>77777</connectedNumber>
</moc>
<moc>
<causeForTermination>0</causeForTermination>
<serviceCode>
<teleServiceCode>11</teleServiceCode>
</serviceCode>
<dialledDigits>2222222</dialledDigits>
</moc>
</callEvents>
<callEventsCount>100</callEventsCount>
</Test>
Chcę wyjście Wszystkie wartości dla dialledDigits. Jednak mój kod wyświetla tylko pierwszą instancję dialledDigits.
dialledDigits {} 5555555
Moje pożądane wyniki powinny zawierać obie instancje.
dialledDigits {} 5555555
dialledDigits {} 2222222
Oto mój kod
import xml.etree.ElementTree as ET
tree = ET.parse('as.xml')
root = tree.getroot()
callevent=root.find('callEvents')
Moc1=callevent.find('moc')
for node in Moc1.getiterator():
if node.tag=='dialledDigits':
print node.tag, node.attrib, node.text
Ale nie powinno tam być sposób, aby to zrobić bez wyraźnego jeśli check, ale raczej jak „do węzła moc.inter ("dialledDigits") "? – LazyCat