我遇到的问题是,在我的 xml 文件中,某些值未声明为 XMl 元素。但是为了进一步处理,我需要它们成为一个元素。 例子:
<A id="0">
<B>Lorem ipsum</B>
<C>100</C>
12.34
</A>
最后 XML 文件应该类似于这样:
<A id="0">
<B>Lorem ipsum</B>
<C>100</C>
<D>12.34</D>
</A>
我查看了 varoius python 文档,但只找到了一种添加具有值的新元素的方法。
您可以使用
xml.etree.ElementTree
中的构建来做到这一点:
import xml.etree.ElementTree as ET
tree = ET.parse('Start.xml')
root = tree.getroot()
# Show current XML
ET.dump(root)
# catch the tail value
for elem in root.iter():
tail_text = elem.tail
# reset the tail value
for elem in root.iter():
if elem.tag =="C":
elem.tail = '\n'
# define new node
ET.SubElement(root, "D")
# assign the new nodes text
for elem in root.iter():
if elem.tag == "D":
elem.text = tail_text
# Show changed XML
ET.dump(root)
# write the changed tree to a file
tree.write("new.xml", encoding='utf-8', xml_declaration=True)