我好像卡住了。我正在尝试获得从python代码生成的xml的多次迭代。它只将最新的迭代写入文件。你知道吗
这是我的密码:
import xml.etree.cElementTree as ET
from random import randint
i=5
while i>-4:
event = ET.Element("event")
event.set("class", "rer")
event.set("id", "EV_%d" % (i))
event.set("date", "${ev_d}")
loc = ET.SubElement(event, "loc")
flir = ET.SubElement(loc, "flir")
de = ET.SubElement(flir, "de")
de.set("dist", "km")
de.set("val", "%d" % (randint(0,2)))
i -=1
tree = ET.ElementTree(event)
tree.write("test.xml")
我得到的是:
<event class="rer" date="${ev_d}" id="EV_-3">
<loc>
<flir>
<de dist="km" val="0" />
</flir>
</loc>
</event>
我在输出文件中需要什么:
<event class="rer" date="${ev_d}" id="EV_5">
<loc>
<flir>
<de dist="km" val="0" />
</flir>
</loc>
</event>
<event class="rer" date="${ev_d}" id="EV_4">
<loc>
<flir>
<de dist="km" val="0" />
</flir>
</loc>
</event>
<event class="rer" date="${ev_d}" id="EV_3">
<loc>
<flir>
<de dist="km" val="0" />
</flir>
</loc>
</event>
事先谢谢你的帮助。你知道吗
谨致问候, 优点2
正如@jwodder指出的,您建议的输出不是有效的XML。你的选择是解决这个问题还是绕开它。既然您提到这只是一个组件,那么如果您有一个父元素,每个
<event>
都将嵌套在它下面,那么下面是一种方法。你知道吗在这里,我将父元素和
append
-ed事件添加到父元素中,然后将父树写到末尾的文件中。你知道吗输出:
您不断地覆盖while循环中的事件-所以自然地您就有了打印的事件。你需要做一些类似的事情:
相关问题 更多 >
编程相关推荐