我想从从互联网下载的 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
原文由 Ziv 发布,翻译遵循 CC BY-SA 4.0 许可协议
HTML 与 XML 完全不同(除非 HTML 实际上恰好符合 XHTML 或 XML 模式下的 HTML5)。最好的方法是使用 HTML 解析器 来读取 HTML。之后,您可以将其转换为 Linq to XML,或直接对其进行处理。