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

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

PS我想在内存中保留HtmlElement以便以后使用,而不是简单地将其破坏(这是将其父内部的innerHtml设置为空字符串会做什么)

看看这个WebControl Heritance,有很多function: http : //www.codeproject.com/KB/miscctrl/csEXWB.aspx

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

希望这可以帮助

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

我知道的唯一其他方法是更改​​父级的InnerHtml

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

elem.OuterHtml =“”

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

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