1

我有这样的xml文件

<?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>

和另一个类似的文件我有这个代码

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

我得到这个结果

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

我不知道为什么它不迭代第一个循环

4

1 回答 1

0

迭代器在第一次迭代后耗尽w2,因此您只能看到第一个标签w1和所有标签w2。您需要创建一个标签列表,以便您可以反复迭代 w2 的标签:

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

或者w2每次都重新设置。

for elt in w1:
    for el2 in w2:
        print(elt.tag, el2.tag)
    w2 = tree2.getiterator() # recreate iterator
于 2016-04-19T09:54:47.517 回答