Es gibt mehrere Probleme mit der Website, die Sie verwenden:
Website Sie irgendwie verwenden type=xml
nicht ehren Sie als GET arg senden, stattdessen werden Sie müssen senden Header akzeptieren, sagen Website, die Sie XML anderes akzeptieren es gibt JSON-Daten
Seite nicht content-type akzeptiert text/xml
so müssen Sie senden application/xml
Ihr parse
Anruf ist richtig, es zu Unrecht in anderen Antwort erwähnt ist, dass sie Daten übernehmen sollte, stattdessen parse
Dateinamen oder Dateityp Objekt
import urllib2
from xml.etree import ElementTree
url = 'http://api.ean.com/ean-services/rs/hotel/v3/list?type=xml&apiKey=czztdaxrhfbusyp685ut6g6v&cid=8123&locale=en_US&city=Dallas%20&stateProvinceCode=TX&countryCode=US&minorRev=12'
request = urllib2.Request(url, headers={"Accept" : "application/xml"})
u = urllib2.urlopen(request)
tree = ElementTree.parse(u)
rootElem = tree.getroot()
hotel_list = rootElem.findall("HotelList")
print hotel_list
So, hier ist der Arbeitscode nimmt
Ausgabe:
[<Element 'HotelList' at 0x248cd90>]
Hinweis icherschaffeObjekt und vorbei Accept
Kopf
btw wenn Website JSON zurückzugibt, warum Sie XML analysieren müssen, Parsing JSON ist einfacher, und Sie werden ein fertiges Python-Objekt zu bekommen.
Kann nützlich sein, um die erste Zeile der XML-Datei zu sehen. Mögliches Duplikat von http://stackoverflow.com/questions/6260144/expaterror-not-well-formed-invalid-token. – ClassicThunder