Как загрузить 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.
Зачем? Где я не прав? И как я могу исправить эту проблему на C#?
Также пробовал с:
myXmlDocument.Load(m_strFilePath);
но я получаю:
Сведения об исключении: System.Xml.XmlException: недопустимый символ в заданной кодировке. Строка 1, позиция 503.
2 ответа
Решение
Это говорит вам, что значение 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);
Вам нужно использовать Load()
вместо LoadXML()
, LoadXML пытается разобрать строку в XML, в данном случае ваш URL.