在回答this question時,我遇到了一個我不明白的情況。該OP試圖從以下位置加載XML:http://www.google.com/ig/api?weather=12414&hl=itXmlDocument.Load失敗,LoadXml工作:
顯而易見的解決方案是:
string m_strFilePath = "http://www.google.com/ig/api?weather=12414&hl=it";
XmlDocument myXmlDocument = new XmlDocument();
myXmlDocument.Load(m_strFilePath); //Load NOT LoadXml
但是這個失敗
XmlException:在給定的編碼字符無效。第1行,位置499.
它似乎在的à
窒息。
OTOH,以下工作正常:
var m_strFilePath = "http://www.google.com/ig/api?weather=12414&hl=it";
string xmlStr;
using(var wc = new WebClient())
{
xmlStr = wc.DownloadString(m_strFilePath);
}
var xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlStr);
我被這個困惑。任何人都可以解釋爲什麼前者失敗,但後者工作正常嗎?
值得注意的是,文檔的xml聲明省略了編碼。
WebClient htmlencodes有可能嗎? – Nicolai