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

时间:2012-02-24 00:59:17

标签: c# asp.net xml

编辑:我的错误问题是我不是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");


    }

1 个答案:

答案 0 :(得分:0)

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

相关问题