ImportError:没有名为elementtree.SimpleXMLWriter的模块

时间:2012-09-19 11:16:17

标签: python xml elementtree xmlwriter

在我的python代码中,我试图以XML格式显示输出。为此,我使用XMLwriter

但它显示错误:

Traceback (most recent call last):
  File "C:\Users\Ponmani\Desktop\test.cgi", line 8, in <module>
    from elementtree.SimpleXMLWriter import XMLWriter
ImportError: No module named elementtree.SimpleXMLWriter

导致错误的行是:

from elementtree.SimpleXMLWriter import XMLWriter

我的整个python代码是:

import os
import cgi
import MySQLdb
import cgitb
from xml.etree.ElementTree import ElementTree
from elementtree.SimpleXMLWriter import XMLWriter
import sys
import SecureDb
cgitb.enable()
print "Content-type: text/xml\n\n";
root=xml.start("root")
conn= MySQLdb.connect(host = SecureDb.host ,user =SecureDb.user ,passwd=SecureDb.password ,db=SecureDb.database)
cursor=conn.cursor()
xml=XMLWriter(sys.stdout)
cursor.execute("select * from register where Name='Subburaj'")
result=cursor.fetchall()
if(result!=()):    
    for colns in result:
         xml.start("Group")
         xml.element("Name","%s" %(colns[0]))
         xml.element("Mail","%s" %(colns[1]))
print result
xml.end()
xml.close(root)
conn.commit()
cursor.close()
conn.close()

2 个答案:

答案 0 :(得分:2)

Python 2.5及更高版本附带的ElementTree模块包含SimpleXMLWriter模块;后者与ElementTree功能的其余部分完全分开。

要生成XML,我个人使用Chameleon等模板语言。您还可以使用ElementTree API本身构建树,只需在结果上调用.write()

答案 1 :(得分:1)

我不是一个使用XML的向导,但是,看起来你需要安装elementtree(显然是SimpleXMLWriter wasn't included in python2.5 ......也许它从未被拉入标准库),或使用标准库中的设施。

对我来说,它看起来像是:

import xml.etree.ElementTree as ET
root = ET.Element('root')
#...

for colns in result:
     new_group = ET.SubElement(root,"Group")
     new_elem = ET.SubElement(new_group,"Name")
     new_elem.text = "%s" %(colns[0])
     #I suppose that:
     #ET.SubElement(new_group,"Name").text = str(colns[0])
     #would work too ...
     new_elem = ET.SubElement(new_group,"Mail")
     new_elem.text = "%s" %(colns[0])

然后,您可以使用root.write()

来编写此内容

reference1

reference2