编辑:我的错误问题是我不是url编码字符串,即xdoc.Load(Server.UrlEncode(“website.com”));
在C#ASP.NET中,我正在从URL中检索XML。 XML的格式如下:
<html>
<head></head>
<body>
<product>
<course>
</course>
</product>
... more data
</body>
</html>
所以它真的是HTML或者最好是无效的XML 。当我从互联网上的服务器加载这个xml时,我收到一个错误。
解析/加载失败是因为XML无效(HTML),还是因为我从URL而不是本地文件检索XML而失败?
如何成功解析此文件?我是否需要添加XML文档类型,是否使用C#HTML解析器?
错误是:
// ERROR: Data at the root level is invalid. Line 1, position 1.
public string getProductXML()
{
XmlDocument xdoc = new XmlDocument();
xdoc.Load("http://www.website.com/test.aspx?a=1&b=2"); //ERROR HERE: Data at the root level is invalid. Line 1, position 1.
// NOTE www.website.com is a different server to where this code is executing
XmlNodeList xNodelst = xdoc.DocumentElement.SelectNodes("group");
}
答案 0 :(得分:0)
如果您有权使用.Net 3.5,我会建议使用Linq2Xml。使用Linq2Xml,我会使用WebClient下载源代码,然后使用XElement.Parse()来解析html(XElement.Parse()不需要XML开始标记。)