我有这段代码:
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位。
答案 0 :(得分:31)
它告诉您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);
答案 1 :(得分:6)
您需要使用Load()
代替LoadXML()
。 LoadXML尝试将字符串解析为XML,在这种情况下是您的URL。