Как загрузить XML из URL-адреса в XmlDocument()

У меня есть этот код:

string m_strFilePath = "http://www.google.com/ig/api?weather=12414&hl=it";

XmlDocument myXmlDocument = new XmlDocument();
myXmlDocument.LoadXml(m_strFilePath);

foreach (XmlNode RootNode in myXmlDocument.ChildNodes)
{
}

но когда я пытаюсь выполнить его, я получаю эту ошибку:

Сведения об исключении: System.Xml.XmlException: данные на корневом уровне недействительны. Строка 1, позиция 1.

Почему? Где я ошибаюсь? И как я могу исправить эту проблему на С#?

Также пробовал с:

myXmlDocument.Load(m_strFilePath);    

но я получаю:

Сведения об исключении: System.Xml.XmlException: недопустимый символ в данной кодировке. Строка 1, позиция 503.

Ответы

Ответ 1

Он говорит вам, что значение m_strFilePath недействительно XML. Попробуйте:

string m_strFilePath = "http://www.google.com/ig/api?weather=12414&hl=it";
XmlDocument myXmlDocument = new XmlDocument();
myXmlDocument.Load(m_strFilePath); //Load NOT LoadXml

Однако это не работает (по неизвестной причине... похоже, задыхается от à от Umidità). Следующие работы (по-прежнему пытаются выяснить, какова разница):

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);

Ответ 2

Вам нужно использовать Load() вместо LoadXML(). LoadXML пытается отладить строку, в этом случае ваш url.