Как загрузить 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.