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),所以它将是页面上唯一可见的东西。
您说您想要删除一个元素,但是在编写代码之后,您说您想要删除"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;