输入
<html><body><p>foo <a href='http://www.example.com'>bar</a> baz</p></body></html>
Run Code Online (Sandbox Code Playgroud)
产量
foo
bar
baz
Run Code Online (Sandbox Code Playgroud)
我知道htmldoc.DocumentNode.InnerText,但它会给foobarbaz- 我想得到每个文本,而不是一次.
使用 C# - WinForms
我有一个有效的 HTML 字符串,它可能包含也可能不包含各种 HTML 元素,例如<a>.
我需要搜索此 HTML 并突出显示某些关键字 - 突出显示是通过在<span>文本周围添加内联样式来完成的。我不应该对<a>标签或用户实际上不可见的任何其他 HTML 标签执行此操作。
例如目前我正在这样做:
html = html.Replace(phraseToCount, "<span style=\"background: #FF0000; color: #FFFFFF; font-weight: bold;\">" + phraseToCount + "</span>");
Run Code Online (Sandbox Code Playgroud)
这种方法可行,但会破坏<a>标签。因此,在下面的示例中,只有谷物一词的第一个实例应该以 ' 结尾<span>:
<p>To view more types of cereal click <a href="http://www.cereal.com">here</a>.</p>
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做呢?
编辑-更多信息。
这将在 Winforms 应用程序中运行,因为获取 HTML 的最佳方法是使用 WebBrowser 控件 - 我将抓取网页并突出显示各种单词。