What's up with that? It seems the only way to get an working HtmlDocument object is copying the Document property of an mshtml/webbrowser control. But spawning that is sloooooooooooow. I'd like to avoid writing my own HTML parser and HtmlAgilityPack is copyleft.
Are there other sources of getting an instantiated HtmlDocument that I can dump HTML from a string into?
Or, is there a way to override HtmlElement's annoying habit of throwing a fit when using InnerHtml/OuterHtml with img tags and tr elements?
Edit: I'm referring to System.Windows.Forms.HtmlDocument. My apologies, I'm still new to C# and .Net and know very little about COM and some of the other things this topic brings up.
It has no constructor because it's just a wrapper class around an unmanaged object.
Reference: http://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument.aspx
Depending on what you want it for, you may want to look at SGMLReader or the up-to-date community version.
Robust Programming?
When using the DOM through the WebBrowser control, you should always wait until the DocumentCompleted event occurs before attempting to access the Document property of the WebBrowser control. The DocumentCompleted event is raised after the entire document has loaded; if you use the DOM before then, you risk causing a run-time exception in your application.
http://msdn.microsoft.com/en-us/library/ms171712.aspx