Ven*_*esh 1 python xml lxml elementtree xmlroot
我有一个xml文件看起来像这样
<A>
<B>
<C>
....
</C>
</B>
</A>
Run Code Online (Sandbox Code Playgroud)
我想在元素'A'之上添加root.我找到了一种向root添加元素的方法.但是如何更改现有的root并使用python添加它.
将root添加到xml之后,它应该如下所示
<ROOT>
<A>
<B>
<C>
....
</C>
</B>
</A>
</ROOT>
Run Code Online (Sandbox Code Playgroud)
import lxml.etree as ET
tree = ET.parse('data')
root = tree.getroot()
newroot = ET.Element("root")
newroot.insert(0, root)
print(ET.tostring(newroot, pretty_print=True))
Run Code Online (Sandbox Code Playgroud)
产量
<root>
<A>
<B>
<C>
....
</C>
</B>
</A>
</root>
Run Code Online (Sandbox Code Playgroud)
但实际上,除非你需要添加更复杂的东西,简单的字符串格式化就足够了:
with open('data', 'rb') as f, open('newdata', 'wb') as g:
g.write('<ROOT>{}</ROOT>'.format(f.read()))
Run Code Online (Sandbox Code Playgroud)