使用 AngleSharp 处理一些 HTML 并提取元素的文本内容以供以后挖掘,我遇到了 AngleSharp 去除 HTML 标签的方式的问题。例如,我有一段类似这样的 HTML(减去换行符和制表符):
<div id="someID">
blah, blah, blah, blah
blah, blah,
<ul>
<li><i>action.</i></li>
<li><i>Typical, blah, blah, blah</li>
</ul>
blah, blah, blah
</div>
这里的问题是当我得到TextContent
:
var content = someDiv.TextContext;
它会像这样出来:
"...blah, blah, action.Typical blah, blah..."
单词action
和Typical
被拼凑在一起,没有任何空格(因为它们之间唯一的东西是html标签)。这阻碍了我对文本内容进行标记的努力,因为action.Typical
它被视为一个单词而不是两个单词。
当然,我可以只运行搜索和替换(可能使用正则表达式)之类的东西(\S)\.(\S)
并将其替换为,$1. $2
但随后将需要类似的东西www.somecompany.com
并将其拆分为www
,somecompany
并且com
我可能想保留它(或失败www
并且com
它们本身不太可能非常有用)。我可以排除带有多个点的单词,但网址可能会显示为somecompany.com
(不带www
),或者您可能会遇到类似的电子邮件地址somebody@somecompany.com
。
有没有一种强大的方法来解决这个问题?在标签被剥离后至少保留一个空格?