我有一些表单发布数据,我已转换为dict。我想把这个dict变成一个xml文档。有没有人对如何做到这一点有任何想法。 以前我试过这个:
#!/usr/bin/python
import cgi, cgitb
def cgiFieldStorageToDict( fieldStorage ):
# Makes a dictionary from the http post data
params = {}
for key in fieldStorage.keys():
params[ key ] = fieldStorage[ key ].value
return params
dict = cgiFieldStorageToDict( cgi.FieldStorage() )
print "Content-Type: text/plain"
print
print
print'''xml<configuration>
<location name="location">
<latitude>54.637348</latitude>
<latHemi>true</latHemi>
<longitude>5.829723</longitude>
<longHemi>true</longHemi>
</location>
<microphone name="microphone">
<sensitivity>-26.00</sensitivity>
</microphone>
<weighting name="weighting">'''
if dict['aWeight'] == 'true':
print'<aWeight>true</aWeight>'
else:
print'<cWeight>true</cWeight>'
print'''</weighting>
<optionalLevels name="optionalLevels">
<L95>false</L95>
<L90>false</L90>
<L50>false</L50>
<L10>false</L10>
<L05>true</L05>
<fmax>false</fmax>
</optionalLevels>
</configuration>'''
模糊的想法是,如果所有输出都符合我的预期,那么我可以转换或覆盖旧的xml文件。这不起作用。无论我如何更改if / else语句,它都无法正常工作。任何想法都会非常感激,或者如果有人知道无论如何将表单发布数据转换为xml文件或用表单发布数据覆盖旧的xml文件我将非常感激。提前谢谢。
我找到了一种将dict转换为xml的方法,但它对我不起作用。我认为这是因为它是发布数据。如果有人需要它,知道将来的参考是很方便的。这不是我的代码,它是从python cookbook中复制和粘贴的。
from xml.etree.ElementTree import Element
from xml.etree.ElementTree import tostring
# Convert dict into xml
def dict_to_xml(tag, d):
elem = Element(tag)
for key, val in d.items():
child = Element(key)
child.text = str(val)
elem.append(child)
return elem