我正在尝试使用Html Agility Pack来突出显示html字符串中的文本。我能够用
<span class="highlight">
替换文本,但是当我替换文本时,跨越标签周围的空格就不见了。例如,如果文本是"This text will be highlighted"
,则结果为"This text will be<span class='highlighted'>highlighted</span>"
,在标签前的空格消失了。这会将之前和之后的单词与文本合并。我只需像这样做一个递归循环:
- 获取第一个子节点
- 如果节点是
#text
,则node.InnerHtml = InnerText.Replace(search_term, span_code)
- 如果节点有子节点,则转到步骤1
- 转到下一个同级节点,然后转到步骤1
然后我将HtmlDocument
的InnerHtml
作为结果。我尝试在之前和之后放置空格,但它们被删除了。我尝试过HtmlDocument.OptionWriteEmptyNodes = true;
也无济于事。我替换了创建HtmlDocument
之前和获取html字符串之后的所有"\n"
和"\t"
字符,并且它们也没有影响。
如何在使用Html Agility Pack时保留空格?