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")
Кто-нибудь может помочь?
Править: Имейте Вас, назвал Ваш сценарий: 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
, так или иначе последний является все еще быстрым xml синтаксическим анализатором, записанным в C, и я думаю, что различие незначительно (сравнительные тесты здесь).