我的XML:通過一個XML遍歷沒有在Python工作
<animals>
<animal name="fox" fullname="fullfox"></animal>
<animal name="dog" fullname="halfdog"><food>milk</food><food>rice</food><food>meat</food> </animal>
<animal name="cow" fullname="doublecow"><food>grass</food></animal>
<animal name="blabla" fullname="fullbla"></animal>
</animals>
我試圖解析這個XML得到相同的XML作爲輸出。
doc = ET.parse("an.xml")
root = doc.getroot() #Returns the root element for this tree.
root_new = ET.Element("animals")
for child in root:
name = child.attrib['name']
fullname = child.attrib['fullname']
for g in root.findall("*/food"):
animal = ET.SubElement(root_new, "animal")
food = ET.SubElement(animal, "food")
food.text = g.text
animal.set("name",name)
animal.set("fullname",fullname)
tree = ET.ElementTree(root_new)
tree.write(sys.stdout)
,但我只得到了最後一個值
<animals>
<animal fullname="fullbla" name="blabla"><food>milk</food></animal>
<animal fullname="fullbla" name="blabla"><food>rice</food></animal>
<animal fullname="fullbla" name="blabla"><food>meat</food></animal>
<animal fullname="fullbla" name="blabla"><food>grass</food></animal>
</animals>
和食品節點也錯了,如何遍歷酷似我的輸入XML?
你應該是一個對象的兒童組在一起'food'標籤。嘗試迭代動物,併爲每個動物迭代食物。 – Bakuriu
我嘗試這種方式tooo..but同樣:( –
但沒有人能夠完全回答,輸出xml indendation :(,所有xml在這裏,我接受也在一行:( –