0

我有一个 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),因此它将是页面上唯一可见的内容。

4

1 回答 1

0

你说你想删除一个元素,但是在你的代码之后你说你想删除“表单”之外的所有内容。我不确定你真正想要哪个,但你可以用以下方法做第二个。

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

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

然后,您可以将Document.DocumentText属性设置InnerHtml为“表单”的属性。您可能应该包装内部 HTML,使其成为有效页面,但这应该有效:

webBrowser1.Document.DocumentText = elementToSave.InnerHtml;
于 2013-03-20T02:34:57.483 回答