[Python-es] POST xml cgi

Luis Miguel Morillas morillas en gmail.com
Dom Mayo 27 09:30:31 CEST 2012


El día 27 de mayo de 2012 01:51, FERNANDO VILLARROEL
<fvillarroel en yahoo.com> escribió:
> Hola amigos.
>
> Quisiera alguna ayuda lo que sucede es que hay un proceso que mediante POST envia un XML a un CGI, entonces en ese CGI debo parsear y extraer ciertos valores para meterlos en una base de datos.
> El asunto es que no lo consigo
>
>
> #!/usr/bin/python
>
> print "Content-type: text/html\n"
>
> import xml.etree.ElementTree as et
> import cgi
>
> form = cgi.FieldStorage()
> xmlcdr=str(form['cdr'].value)
> #xmlc=et.fromstring(xmlcdr)
> xmlc=et.parse(xmlcdr)
>
>
> Este codigo me tira el siguiente error:
>
> [Sat May 26 11:30:55 2012] [error] [client 127.0.0.1]   File "/usr/lib/cgi-bin/cdr.py", line 15, in <module>
> [Sat May 26 11:30:55 2012] [error] [client 127.0.0.1]     xmlc=et.parse(xmlcdr)
> [Sat May 26 11:30:55 2012] [error] [client 127.0.0.1]   File "/usr/lib/python2.6/xml/etree/ElementTree.py", line 862, in parse
> [Sat May 26 11:30:55 2012] [error] [client 127.0.0.1]     tree.parse(source, parser)
> [Sat May 26 11:30:55 2012] [error] [client 127.0.0.1]   File "/usr/lib/python2.6/xml/etree/ElementTree.py", line 579, in parse
> [Sat May 26 11:30:55 2012] [error] [client 127.0.0.1]     source = open(source, "rb")
> [Sat May 26 11:30:55 2012] [error] [client 127.0.0.1] IOError
> [Sat May 26 11:30:55 2012] [error] [client 127.0.0.1] : [Errno 36] File name too long: '<?xml version="1.0"?>
>
> Alguna idea o sugerencia que me ayude.
>

No uso ET, pero qué quieres pasar, una cadena XML o la ruta de un
fichero? El CGI recibe una cadena. Si pasas la cadena, tendrás que
usara el et.fromstring() que tienes comentado, no?


-- lm

> Fernando
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/


Más información sobre la lista de distribución Python-es