使用c#从Web浏览器识别内容

时间:2018-09-03 15:23:07

标签: c# replace webbrowser-control substitution mshtml

我使用Web浏览器控件创建了该控件,该控件仅识别代码中指示的特定单词。唯一的功能是,它可以读取内容并突出显示网页内容中的单词。我唯一的问题是,如何将字符串替换为另一个单词(特别是将其更改为星号(*))而不是突出显示它?谢谢。

 private void button1_Click(object sender, EventArgs e)
    {
        webBrowser1.Navigate(txbAdress.Text);
        webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
    }

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        IHTMLDocument2 doc2 = webBrowser1.Document.DomDocument as IHTMLDocument2;
        StringBuilder html = new StringBuilder(doc2.body.outerHTML);

        var words = new[] { "bobo", "tanga", "gago" };
        foreach (String key in words)
        {
            String substitution = "<span style='background-color: rgb(255, 0, 0);'>" + key + "</span>";
            html.Replace(key, substitution);
        }

        doc2.body.innerHTML = html.ToString();
    }

1 个答案:

答案 0 :(得分:0)

  

我唯一的问题是,如何将字符串替换为另一个单词   (具体将其更改为星号(*))而不是突出显示?

更改:

String substitution = "<span style='background-color: rgb(255, 0, 0);'>" + key + "</span>";
html.Replace(key, substitution);

收件人:

html.Replace(key, "*");

或者,如果您尝试用星号将单词的每个特定字符都消除掉,则构建一个长度为key的星号字符串(您可以使用的值key.Length