2009-02-16 76 views
6

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

P.S.我想保留在内存中HtmlElement供以后使用,而不是简单地破坏它(这是什么设置其父innerHtml为空字符串会做)

回答

1

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

2

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

elem.OuterHtml = “”

我希望这是你所期待的。

+0

不[总是]与Internet Explorer 6的基础标签工作的参考,例如,抵抗这种方法。 – user38329 2011-05-02 11:18:44

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); 
... 
} 
+0

谢谢,这让我能够弄清楚。我的代码适用于:HTMLDocument htmlDoc =(HTMLDocument)webBrowser1.Document.DomDocument; IHTMLElement tmpElement = htmlDoc.getElementById(“xBar”); IHTMLDOMNode tmpNode =(IHTMLDOMNode)tmpElement; tmpNode.parentNode.removeChild(tmpNode); – Xantix 2013-12-02 04:30:39

相关问题