C #: у объекта HtmlDocument нет конструктора? - PullRequest
9 голосов
/ 28 марта 2009

Что с этим? Кажется, единственный способ получить работающий объект HtmlDocument - это копировать свойство Document элемента управления mshtml / webbrowser. Но порождение это неестественно. Я хотел бы не писать свой собственный анализатор HTML, а HtmlAgilityPack - это copyleft.

Существуют ли другие источники получения экземпляра HtmlDocument, в который я могу выгружать HTML из строки?

Или, есть ли способ переопределить раздражающую привычку HtmlElement бросать подбор при использовании InnerHtml / OuterHtml с тегами img и элементами tr?

Редактировать: я имею в виду System.Windows.Forms.HtmlDocument. Приношу свои извинения, я все еще новичок в C # и .Net и очень мало знаю о COM и некоторых других вещах, которые поднимает эта тема.

Ответы [ 2 ]

7 голосов
/ 28 марта 2009

У него нет конструктора, потому что это просто класс-оболочка для неуправляемого объекта.

Ссылка: http://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument.aspx

HtmlDocument предоставляет управляемый Обертка вокруг Internet Explorer объект документа, также известный как Объектная модель документа HTML (DOM). Вы получить экземпляр HtmlDocument через свойство Document объекта Элемент управления WebBrowser.

В зависимости от того, для чего вы хотите, вы можете посмотреть SGMLReader или последнюю версию сообщества .

4 голосов
/ 28 марта 2009

Надежное программирование?

При использовании DOM через элемент управления WebBrowser вы всегда должны ждать, пока не произойдет событие DocumentCompleted, прежде чем пытаться получить доступ к свойству Document элемента управления WebBrowser. Событие DocumentCompleted возникает после загрузки всего документа; если вы используете DOM до этого, вы рискуете вызвать исключение времени выполнения в вашем приложении.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...