4

私の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()
4

2 に答える 2

3

Python 2.5以降に同ElementTree梱されているモジュールには、モジュールは含まれていません。SimpleXMLWriter後者は、他の機能から完全に分離されていElementTreeます。

XMLを生成するために、私は個人的にChameleonなどのテンプレート言語を使用します。ElementTree API自体を使用してツリーを構築.write()し、結果を呼び出すこともできます。

于 2012-09-19T11:39:08.297 に答える
1

私はXMLのウィザードではありませんが、elementtreeをインストールする必要があるようです(明らかにSimpleXMLWriterは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()

参照1

参照2

于 2012-09-19T11:36:43.023 に答える