从没有文档类型的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");

    }

从没有文档类型的URL解析XML:错误是什么

如果您可以使用.Net 3.5,我建议使用Linq2Xml。使用Linq2Xml,我会使用WebClient下载源代码,然后使用XElement.Passe()解析html(XElement.Parse()不需要XML起始标记)。