使用HtmlAgilityPack保留空白区域

时间:2011-10-25 21:47:49

标签: c# html-parsing html-agility-pack

我正在尝试使用 Html Agility Pack 突出显示html字符串中的文本。我可以用<span class="highlight">替换文本,但是当我替换文本时,span标记周围的空白区域就消失了。例如,如果文本为"This text will be highlighted",则结果为"This text will be<span class='highlighted'>highlighted</span>",并且空格标记之前的空格就会消失。这会将跨度前后的单词与跨区文本合并。我只是做一个像这样的递归循环:

  1. 获取第一个子节点
  2. 如果节点为#text,则为node.InnerHtml = InnerText.Replace(search_term, span_code)
  3. 如果节点具有子节点转到步骤1
  4. 转到下一个兄弟姐妹,然后转到第1步
  5. 然后我得到InnerHtml的{​​{1}}作为结果。我尝试在HtmlDocument之前和<span之后放置空格,但它删除了它们。我试过</span>它也没用。在创建HtmlDocument.OptionWriteEmptyNodes = true;之前和获取html字符串之后,我用空格替换了所有"\n""\t"个字符,但它们都没有影响。

    使用Html Agility Pack时如何保留空白区域?

1 个答案:

答案 0 :(得分:3)

实际上HtmlDocument.OptionWriteEmptyNodes = true;做了我想要的。我现在意识到了。