私はElementTreeでXMLを解析しようとしていますが、このエラーが発生します:
xml.etree.ElementTree.ParseError: encoding specified in XML declaration is incorrect
私のfile.py:
from suds.client import Client
import xml.etree.ElementTree as ET
url = "http://www.webservicex.com/globalweather.asmx?WSDL"
client = Client(url)
weather = client.service.GetWeather("Sao Paulo", "Brazil")
print weather
parseWeather = ET.fromstring(weather) # >>>> Here I got my problem!
私は文字列天気から私のXMLを解析しようとするとき。誰もこの種の問題を解決する方法を知っていますか?
回答:
回答№1の場合は3ザ weather
応答は ない 文字列:
>>> type(weather)
<class "suds.sax.text.Text">
ElementTreeはそれをテキストに変換します。要求されたエンコーディングはUTF16です:
>>> weather.splitlines()[0]
"<?xml version="1.0" encoding="utf-16"?>"
この応答をテキストに変換するには、UTF-16に明示的にエンコードします。
>>> weather = weather.encode("utf16")
>>> parseWeather = ET.fromstring(weather)
回答№2の場合は0
あなたがファイルのエンコーディングを確実にすることはできませんが 〜すべき 私はxmlエンコーディング宣言をutf-8に変更しようとしましたが、ElementTreeはそれを解析できました。
weather = client.service.GetWeather("Sao Paulo", "Brazil")
weather = weather.replace("encoding="utf-16"?", "encoding="utf-8"?")