xml.parsers.expat.ExpatError en el análisis de XML

Estoy intentando analizar XML con Python pero no estoy llegando muy lejos. Creo que es debido a un árbol XML incorrecto que devuelve esta API.

Así que esto es lo que devuelve la solicitud GET:

3Dummy 

La solicitud GET va aquí:

 http://69.36.9.147:8090/clientes/SMS_API_OUT.jsp?codigo=ABCDEFGH&cliente=XX 

Este es el código Python que estoy usando sin ninguna suerte:

 import urllib from xml.dom import minidom url = urllib.urlopen('http://69.36.9.147:8090/clientes/SMS_API_OUT.jsp?codigo=ABCDEFGH&cliente=XX') xml = minidom.parse(url) code = doc.getElementsByTagName('codigo') print code[0].data 

Y esta es la respuesta que recibo:

 xml.parsers.expat.ExpatError: junk after document element: line 1, column 18 

Lo que debo hacer es recuperar el valor dentro del elemento y colocarlo en una variable (igual para los demás).

El problema principal aquí es que el código XML que devuelve ese servicio no incluye un nodo raíz, que no es válido. Arreglé esto simplemente envolviendo la salida en un nodo .

 import urllib from xml.etree import ElementTree url = 'http://69.36.9.147:8090/clientes/SMS_API_OUT.jsp?codigo=ABCDEFGH&cliente=XX' xmldata = '' + urllib.urlopen(url).read() + '' tree = ElementTree.fromstring(xmldata) codigo = tree.find('codigo').text print codigo 

Puede usar el analizador que desee, pero aquí usé ElementTree para obtener el valor.

Un documento XML consta de un elemento de documento de nivel superior y, a continuación, varios subelementos. Su fragmento XML contiene varios elementos de nivel superior, lo que no está permitido por el estándar XML.

Intenta devolver algo como:

 3Dummy 

He envuelto toda la respuesta en una etiqueta .