从没有文档类型的URL解析XML:错误是什么
本文关键字:XML 解析 错误 是什么 URL 文档 类型 | 更新日期: 2023-09-27 18:25:33
编辑:我的错误问题是我没有对字符串进行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");
}
如果您可以使用.Net 3.5,我建议使用Linq2Xml。使用Linq2Xml,我会使用WebClient下载源代码,然后使用XElement.Passe()解析html(XElement.Parse()不需要XML起始标记)。