如何检查HTML元素是否包含文本内容

时间:2015-12-25 11:38:36

标签: c# winforms mshtml innertext

在C#winform应用程序中,我尝试检查innerText的{​​{1}}是否为空格。

HtmlElement

String.IsNullOrWhiteSpace(elem.InnerText) 是:

elem.OuterHtml

<div class="ad-container toplb"> <span class="leader-board"> <div id="div-gpt-ad-1409955032897-3"> <script type="text/javascript"> PbhAdUnit.cmd_push(function() {pbh_ad_units['div-gpt-ad-1409955032897-3'].display(); }); </script> </div> </span> </div

的内容
innerText

我希望 PbhAdUnit.cmd_push(function() {pbh_ad_units['div-gpt-ad-1409955032897-3'].display(); }); 忽略脚本,如果元素内没有可读文本(页面上显示的文本),则返回空。无论如何,我怎么能忽略这些元素?

1 个答案:

答案 0 :(得分:2)

您可以使用InnerText属性找到元素的内部文本。它返回所有内部文本删除标记。

示例代码:

private void Form1_Load(object sender, EventArgs e)
{
    this.webBrowser1.Navigate(@"d:\sample.html");
}

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    var div = this.webBrowser1.Document.GetElementById("div1");
    MessageBox.Show(string.Format("'{0}'", div.InnerText), "InnerText");
    MessageBox.Show(string.Format("'{0}'", div.InnerHtml), "InnerHtml");
}

示例内容:

使用以下内容创建sample.html文件。

<html>
<head><title>Title</title></head>
<body>
    <div id="div1"><script type="text/javascript">alert('Hi');</script><input type="text"/></div>
</body>
</html>

<强>结果:

我将''放在内部文本和内部html:

enter image description here

enter image description here