【发布时间】:2011-07-25 05:40:34
【问题描述】:
我想从从 Internet 下载的 html 页面中提取几个链接,我认为使用 linq to XML 对我的情况来说是一个很好的解决方案。
我的问题是我无法从 HTML 创建 XmlDocument,使用 Load(string url) 不起作用,所以我使用以下方法将 html 下载到字符串:
public static string readHTML(string url)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream());
string html = sr.ReadToEnd();
sr.Close();
return html;
}
当我尝试使用 LoadXml(string xml) 加载该字符串时,出现异常
'--' is an unexpected token. The expected token is '>'
我应该采取什么方式将 html 文件读取为可解析的 XML
【问题讨论】:
-
HTML 不一定是有效的 XML。 HTML 基于 SGML,它本身是 XML 的超集(一种)。因此,您需要一个特殊的 HTML 解析器,而不是通用的 XML 解析器。
-
更多相同的答案和上面的评论。 HTML 不是 XML
标签: c# html xml html-parsing