从FieldStorage发布数据python构建一个xml文档

时间:2016-08-31 10:22:32

标签: python xml dictionary post

我有一些表单发布数据,我已转换为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

0 个答案:

没有答案