使用HtmlAgilityPack保留空白區域

c# html-agility-pack html-parsing

我正在嘗試使用Html Agility Pack突出顯示html字符串中的文本。我可以用<span class="highlight">替換文本,但是當我替換文本時,span標記周圍的空白區域消失了。例如,如果文本為"This text will be highlighted" ,則結果為"This text will be<span class='highlighted'>highlighted</span>" ,並且空格在span標記之前消失。這會將跨度前後的單詞與跨區文本合併。我只是像這樣做一個遞歸循環:

  1. 獲取第一個子節點
  2. 如果節點是#text ,則比node.InnerHtml = InnerText.Replace(search_term, span_code)
  3. 如果節點具有子節點轉到步驟1
  4. 轉到下一個兄弟,然後轉到第1步

然後我得到了InnerHtmlHtmlDocument作為結果。我嘗試在<span和之後</span>之前放置空格,但它刪除了它們。我試過HtmlDocument.OptionWriteEmptyNodes = true;它也沒用。在創建HtmlDocument之前和獲取html字符串之後,我用空格替換了所有"\n""\t"字符,並且它們都沒有影響。

使用Html Agility Pack時如何保留空白區域?

一般承認的答案

實際上HtmlDocument.OptionWriteEmptyNodes = true;做了我想要的。我現在意識到了。




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因