C#:HtmlDocument对象没有构造函数?

时间:2009-03-27 22:13:43

标签: c# parsing dom

这是怎么回事?似乎获取正在运行的HtmlDocument对象的唯一方法是复制mshtml / webbrowser控件的Document属性。但产卵是sloooooooooooow。我想避免编写自己的HTML解析器,HtmlAgilityPack是copyleft。

是否有其他来源获取实例化的HtmlDocument,我可以将HTML从字符串转储到?

或者,当使用带有img标签和tr元素的InnerHtml / OuterHtml时,是否有办法覆盖HtmlElement令人讨厌的习惯?

编辑:我指的是System.Windows.Forms.HtmlDocument。我很抱歉,我还是C#和.Net的新手,对COM以及本主题带来的其他一些事情知之甚少。

2 个答案:

答案 0 :(得分:7)

它没有构造函数,因为它只是一个围绕非托管对象的包装类。

参考:http://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument.aspx

  

HtmlDocument提供托管   Internet Explorer的包装器   文档对象,也称为   HTML文档对象模型(DOM)。您   获取HtmlDocument的实例   通过Document的Document属性   WebBrowser控件。

根据您的需要,您可能需要查看SGMLReader或最新community version

答案 1 :(得分:4)

强大的编程?

通过WebBrowser控件使用DOM时,在尝试访问WebBrowser控件的Document属性之前,应始终等到DocumentCompleted事件发生。加载整个文档后引发DocumentCompleted事件;如果在此之前使用DOM,则可能会在应用程序中导致运行时异常。

http://msdn.microsoft.com/en-us/library/ms171712.aspx