【问题标题】:web browser delete element's outer html网络浏览器删除元素的外部 html
【发布时间】:2013-03-20 01:50:16
【问题描述】:

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

【问题讨论】:

标签: c# outerhtml


【解决方案1】:

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

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

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

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

webBrowser1.Document.DocumentText = elementToSave.InnerHtml;

【讨论】:

  • 对不起,我的错误我现在修正了。所以你给我的这个是只显示没有外部html的表单吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-14
  • 2012-10-30
相关资源
最近更新 更多