如何在 C# 中从 HTML 字符串操作 DOM?

新手上路,请多包涵

目前,我发现能够从包含 HTML 的字符串操作 DOM 的最佳方法是:

 WebBrowser webControl = new WebBrowser();
webControl.DocumentText = html;
HtmlDocument doc = webControl.Document;

有两个问题:

  1. 需要 WebBrowser 对象!
  2. 这不能与多线程一起使用;我需要一些可以在不同线程(主线程除外)上工作的东西。

有任何想法吗?

原文由 Patrick Desjardins 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 686
2 个回答

我在 GooglePlex 上搜索了 HTML,我发现了 Html Agility Pack 我不知道它是否适合这个,我现在正在下载它来试一试。

原文由 Patrick Desjardins 发布,翻译遵循 CC BY-SA 4.0 许可协议

根据您要执行的操作(也许您可以向我们提供更多详细信息?)并根据 HTML 格式是否正确,您 可以 将其转换为 XmlDocument

 System.Xml.XmlDocument x = new System.Xml.XmlDocument();
x.LoadXml(html); // as long as html is well-formed, i.e. XHTML

然后你可以轻松地操作它,而无需 WebBrowser 实例。至于线程,我对 XmlDocument 的实现知之甚少,无法知道该部分的答案。


如果文档的格式不正确,您可以先使用 NTidyHTML Tidy 的 .NET 包装器)来调整它的形状;我不得不为一个项目做一次这样的事情,这真的不算太糟糕。

原文由 Jason Bunting 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题