Web浏览器删除元素's外部html

本文关键字:外部 html 浏览器 删除 元素 Web | 更新日期: 2023-09-27 18:05:02

我有一个c#应用程序,它有一个web浏览器,默认导航到指定的页面。

我想做的是当文档完全加载时,通过标签名称(不是ID/Class)选择html元素,然后删除它外面的html,但我已经尝试了一段时间,仍然没有成功..

这是我的事件和我到目前为止的地方

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        var elementToDelete = webBrowser1.Document.GetElementsByTagName("form");
    }

我想选择没有CLASS/ID的表单元素,并删除它外面的所有html代码(outer-html),所以它将是页面上唯一可见的东西。

Web浏览器删除元素's外部html

您说您想要删除一个元素,但是在编写代码之后,您说您想要删除"form"之外的所有内容。我不确定您真正想要的是哪个,但是您可以用下面的命令执行第二个。

首先,注意elementToDelete实际上是一个集合,而不是一个单独的元素,所以我们需要得到一个单独的元素。

var formElements = webBrowser1.Document.GetElementsByTagName("form");
var elementToSave = formElements.FirstOrDefault();
if(elementToSave == null)
    throw new InvalidOperationException("No element named 'form'");

可以将"form"的Document.DocumentText属性设置为InnerHtml属性。您可能应该包装内部HTML,以便它是一个有效的页面,但这应该工作:

webBrowser1.Document.DocumentText = elementToSave.InnerHtml;