我有一个现有的xml文件,如下所示:
<vehicleTravelTimeMeasurements>
<vehicleTravelTimeMeasurement name="ckkkkkkkkkk" no="2">
<start link="1" pos="3.864983"/>
<end link="3" pos="23.275375"/>
</vehicleTravelTimeMeasurement>
<vehicleTravelTimeMeasurement name="" no="3">
<start link="1" pos="3.864983"/>
<end link="2" pos="13.275375"/>
</vehicleTravelTimeMeasurement>
</vehicleTravelTimeMeasurements>
我正在尝试使用xml.etree.cElementTree构造与上述相同的格式,并将其正确添加到xml中:
new = ET.Element("vehicleTravelTimeMeasurement", name = "kkk", no = "4")
newsub1 = ET.Element("start", link = "1", pos="3.88888")
newsub2 = ET.Element("end",link = "3", pos = "3.88888")
有人可以帮我这个忙吗?
先感谢您!
你想使用SubElement
并添加start
和end
元素的vehicleTravelTimeMeasurement
元素。然后,将新创建的元素插入位置2,因为0和1已被占用。
import xml.etree.ElementTree as ET
def indent(elem, level=0):
i = "\n" + level*" "
if len(elem):
if not elem.text or not elem.text.strip():
elem.text = i + " "
if not elem.tail or not elem.tail.strip():
elem.tail = i
for elem in elem:
indent(elem, level+1)
if not elem.tail or not elem.tail.strip():
elem.tail = i
else:
if level and (not elem.tail or not elem.tail.strip()):
elem.tail = i
xml = '''<vehicleTravelTimeMeasurements>
<vehicleTravelTimeMeasurement name="ckkkkkkkkkk" no="2">
<start link="1" pos="3.864983"/>
<end link="3" pos="23.275375"/>
</vehicleTravelTimeMeasurement>
<vehicleTravelTimeMeasurement name="" no="3">
<start link="1" pos="3.864983"/>
<end link="2" pos="13.275375"/>
</vehicleTravelTimeMeasurement>
</vehicleTravelTimeMeasurements>'''
root = ET.fromstring(xml)
new = ET.Element("vehicleTravelTimeMeasurement", name = "kkk", no = "4")
newsub1 = ET.SubElement(new, "start", link = "1", pos="3.88888")
newsub2 = ET.SubElement(new, "end",link = "3", pos = "3.88888")
root.insert(2, new)
indent(root)
with open('test.xml', 'w') as f:
f.write(ET.tostring(root))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句