Удаление объектов HtmlElement программно с использованием C # - PullRequest
6 голосов
/ 16 февраля 2009

Как удалить HtmlElement объекты в элементе управления WebBrowser? В классе HtmlElement нет методов для этого. В качестве обходного пути я могу создать «пустышку» HtmlElement (не вставляя ее в HtmlDocument), в которую я затем вставляю (через AppendChild) объекты HtmlElement, которые необходимо удалить. Это похоже на взлом. Есть ли лучший способ сделать это?

P.S. Я хочу сохранить HtmlElement в памяти для последующего использования, а не просто уничтожить его (что может сделать установка innerHtml его родителя для пустой строки)

Ответы [ 5 ]

3 голосов
/ 02 августа 2009

Добавить ссылку на Microsoft.mshtml (из вкладки .Net)

using Microsoft.mshtml;
....
{
...
    // To Remove     
    HTMLDocumentClass htmldoc = wbCtrl.Document.DomDocument as HTMLDocumentClass;
    IHTMLDOMNode node = htmldoc.getElementById("xBar") as IHTMLDOMNode;
    node.parentNode.removeChild(node);
...
}
3 голосов
/ 12 марта 2009

Посмотрите на это наследие WebControl, с множеством функций: http://www.codeproject.com/KB/miscctrl/csEXWB.aspx

Вы можете добавить метод удаления к элементу del по id.

Надеюсь, это поможет

2 голосов
/ 11 марта 2009

Вы можете удалить элемент, установив его externalhtml в пустую строку.

elem.OuterHtml = ""

Надеюсь, это то, что вы искали.

г

2 голосов
/ 16 февраля 2009

Единственный другой способ, которым я знаю, - это изменить InnerHtml у родителя.

1 голос
/ 16 февраля 2009

Существует метод с именем IHTMLDOMNode::removeNode, который выглядит как "официальный" способ сделать это, но это неуправляемый код в mshtml.dll Я ищу что-то более подходящее для C #.

...