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桁目
à
がUmidità
で窒息しているようです。
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