使用C#以编程方式删除HtmlElement对象

时间:2009-02-16 19:11:34

标签: c# browser webbrowser-control dom

WebBrowser控件中,如何删除HtmlElement个对象? HtmlElement类中没有方法可以实现此目的。作为一种解决方法,我可以创建一个“虚拟”HtmlElement(不将其插入HtmlDocument),然后我将AppendChild对象插入其中(通过HtmlElement}被删除。这感觉就像一个黑客。有更好的方法吗?

P.S。我希望将HtmlElement保留在内存中以便以后使用,而不是简单地将其销毁(这就是将其父级innerHtml设置为空字符串的方式)

5 个答案:

答案 0 :(得分:3)

查看此WebControl Heritance,其中包含大量功能:http://www.codeproject.com/KB/miscctrl/csEXWB.aspx

您可以通过id为del元素添加remove方法。

希望这有帮助

答案 1 :(得分:3)

添加对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);
...
}

答案 2 :(得分:2)

我知道的唯一另一种方法是更改​​父级InnerHtml

答案 3 :(得分:2)

您可以通过将其outerhtml设置为空字符串来删除该元素。

elem.OuterHtml =“”

我希望这就是你要找的东西。

答案 4 :(得分:1)

有一个名为IHTMLDOMNode::removeNode的方法看起来像“官方”方式,但这是mshtml.dll中的非托管代码。我正在寻找更适合C#的东西。