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.etree
请ElementTree
查看此文档lxml.etree 与 ElementTree。
cElementTree
比 稍快一些lxml.etree
,无论如何后者仍然是一个用 C 编写的快速 xml 解析器,我认为差异可以忽略不计(基准测试这里)。