Python:从 Python 字典生成 XML 文件时出错

Python:从 Python 字典生成 XML 文件时出错
ImportError: No module named elementtree.SimpleXMLWriter      

代码:

import xml.etree.cElementTree as ET 

root = ET.Element("root") 
doc = ET.SubElement(root, "doc") 
field1 = ET.SubElement(doc, "field1") 
field1.set("name", "blah") 
field1.text = "some value1" 
field2 = ET.SubElement(doc, "field2") 
field2.set("name", "asdfasd") 
field2.text = "some vlaue2" 
tree = ET.ElementTree(root) 
tree.write("filename.xml") 

有人可以帮忙吗?

答案1

编辑:您是否已命名您的脚本:xml.py?更改它,它应该可以工作。

作为一种解决方法,你可以etree在 lxml 包中使用。如果你没有lxml安装,请输入:

sudo apt-get install python-lxml

对于程序的修改版本:

import lxml.etree as ET 

root = ET.Element("root") 
doc = ET.SubElement(root, "doc") 
field1 = ET.SubElement(doc, "field1") 
field1.set("name", "blah") 
field1.text = "some value1" 
field2 = ET.SubElement(doc, "field2") 
field2.set("name", "asdfasd") 
field2.text = "some vlaue2" 
tree = ET.ElementTree(root) 
tree.write("filename.xml") 

输出:

<root>
   <doc>
        <field1 name="blah">some value1</field1>
        <field2 name="asdfasd">some vlaue2</field2>
   </doc>
</root>

有关这两个解决方案之间的差异,lxml.etreeElementTree查看此文档lxml.etree 与 ElementTree

cElementTree比 稍快一些lxml.etree,无论如何后者仍然是一个用 C 编写的快速 xml 解析器,我认为差异可以忽略不计(基准测试这里)。

相关内容