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

问题描述 投票:6回答:5

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

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

c# browser webbrowser-control dom
5个回答
3
投票

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

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

希望这可以帮助


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
投票

我知道的另一种方法是改变父母的InnerHtml


2
投票

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

item.OuterHtml =“”

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


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.