我对使用xml ElementTree模块编写xml文件感到有些困惑。我试着构建文档: 例如
a = ET.Element('a')
b = ET.SubElement(a, 'b')
c = ET.SubElement(a, 'c')
d = ET.SubElement(c, 'd')
我如何完全接受这个并将其写入文件?
答案 0 :(得分:2)
创建ElementTree
类的实例并调用write()
:
class xml.etree.ElementTree.ElementTree(element=None, file=None)
ElementTree包装类。此类表示整个元素 层次结构,为序列化添加了一些额外的支持 标准XML 。
元素是根元素。树用内容初始化 如果给出,则为XML文件。
tree = ET.ElementTree(a)
tree.write("output.xml")
答案 1 :(得分:2)
您可以使用ElementTree.write()
函数 -
import xml.etree.ElementTree as ET
a = ET.Element('a')
b = ET.SubElement(a, 'b')
c = ET.SubElement(a, 'c')
d = ET.SubElement(c, 'd')
ET.ElementTree(a).write("test.xml")
这将写入文件 - test.xml
-
<a><b /><c><d /></c></a>
要在换行符上使用缩进和元素编写xml,可以使用 - xml.dom.minidom.toprettyxml
。示例 -
import xml.etree.ElementTree as ET
import xml.dom.minidom as md
a = ET.Element('a')
b = ET.SubElement(a, 'b')
c = ET.SubElement(a, 'c')
d = ET.SubElement(c, 'd')
xmlstr = ET.tostring(a).decode()
newxml = md.parse(xmlstr)
newxml = md.parseString(xmlstr)
with open('test.xml','w') as outfile:
outfile.write(newxml.toprettyxml(indent='\t',newl='\n'))
现在,test.xml
看起来像 -
<?xml version="1.0" ?>
<a>
<b/>
<c>
<d/>
</c>
</a>