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

发布于 2024-07-07 15:12:47 字数 1557 浏览 10 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

塔塔猫 2024-07-14 15:12:47

我在 GooglePlex 上搜索了 HTML,发现 Html Agility Pack 我不知道是否是为了这个或不,我现在正在下载尝试一下。

I did a search to GooglePlex for HTML and I found Html Agility Pack I do not know if it's for that or not, I am downloading it right now to give a try.

心如荒岛 2024-07-14 15:12:47

根据您想要执行的操作(也许您可以向我们提供更多详细信息?)并根据 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 包装器)首先使其成形; 我曾经为一个项目做过一次这样的事情,这真的不算太糟糕。

Depending on what you are trying to do (maybe you can give us more details?) and depending on whether or not the HTML is well-formed, you could convert this to an XmlDocument:

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

Then you could manipulate it easily, without the WebBrowser instance. As for threads, I don't know enough about the implementation of XmlDocument to know the answer to that part.


If the document isn't in proper form, you could use NTidy (.NET wrapper for HTML Tidy) to get it in shape first; I had to do this very thing for a project once and it really wasn't too bad.

不甘平庸 2024-07-14 15:12:47

JasonBunting 已经发布了此内容,但使用 .net 包装器围绕 HTML tidy 并将其加载到 XmlDocument 中确实有效。

我之前使用过这个.net包装器:

http://www.codeproject.com/KB/ cs/ZetaHtmlTidy.aspx

并像这样实现它:

string input = "<p>crappy html<br <img src=foo></div>";
HtmlTidy tidy = new HtmlTidy()
string output = tidy.CleanHtml(input, HtmlTidyOptions.ConvertToXhtml);
XmlDocument doc = new XmlDocument();
doc.LoadXml(output);

抱歉,如果被认为是转发:)

JasonBunting already posted this, but it really works to use a .net wrapper around HTML tidy and load it up in an XmlDocument.

I have used this .net wrapper before :

http://www.codeproject.com/KB/cs/ZetaHtmlTidy.aspx

And implemented it somewhat like this:

string input = "<p>crappy html<br <img src=foo></div>";
HtmlTidy tidy = new HtmlTidy()
string output = tidy.CleanHtml(input, HtmlTidyOptions.ConvertToXhtml);
XmlDocument doc = new XmlDocument();
doc.LoadXml(output);

Sorry if considered a repost :)

水晶透心 2024-07-14 15:12:47

这是一个老问题了。 现在有:

  • HTML Agility Pack(您已经找到了)
  • CsQuery,一个 .Net jQuery 端口,对于 jQuery 开发人员来说非常有用

This is an old question. Now there are:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文