【发布时间】:2025-12-10 20:35:02
【问题描述】:
编辑:我的错误是我没有对字符串进行 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。当我从 Internet 上的服务器加载此 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");
}
【问题讨论】:
-
你确定你得到了正确的 XML 吗?尝试手动下载它,例如使用
WebClient然后LoadXml()得到的字符串。