2016-04-19 7 views
1

Ich habe XML-Datei, wie dieXml Python-Schleife getIterator() nicht durchlaufen nicht alle Baum

<?xml version="1.0"?> 
<data> 
<country name="Liechtenstein"> 
    <rank>1</rank> 
    <year>2008</year> 
    <gdppc>141100</gdppc> 
    <neighbor name="Austria" direction="E"/> 
    <neighbor name="Switzerland" direction="W"/> 
</country> 

und andere ähnliche Datei Und ich habe diesen Code

w1 = tree1.getiterator() 
    w2=tree2.getiterator() 
    for elt in w1: 
     for el2 in w2: 
      print(elt.tag,el2.tag) 

I Erhalten Sie dieses Ergebnis

data data 
data country 
data rank 
data year 
data gdppc 
data neighbor 
data neighbor 

Ich weiß nicht, warum es nicht die erste Schleife

Antwort

0

Die Iterator ist erschöpft nach der ersten Iteration über w2 so nur, dass iterieren Sie den ersten Tag aus w1 und alle Tags von w2 einmal sehen. Sie müßten eine Liste von Tags erstellen, so dass Sie immer wieder über die Tags von w2 laufen können:

w2 = list(tree2.getiterator()) # store tags in a list 
for elt in w1: 
    for el2 in w2: 
     print(elt.tag, el2.tag) 

Oder w2 jedes Mal zurückgesetzt.

for elt in w1: 
    for el2 in w2: 
     print(elt.tag, el2.tag) 
    w2 = tree2.getiterator() # recreate iterator 
+0

Vielen Dank, dass mein Problem gelöst – BrDATA

+0

Keine Sorge, Sie sind willkommen. –

Verwandte Themen