Сохраните пробелы с помощью HtmlAgilityPack - PullRequest
4 голосов
/ 26 октября 2011

Я пытаюсь выделить текст в строке html, используя Html Agility Pack .Я могу заменить текст на <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

Затем я получу InnerHtml из HtmlDocument в результате.Я пытался поставить пробел до <span и после </span>, но он их убрал.Я попробовал HtmlDocument.OptionWriteEmptyNodes = true;, это тоже не сработало.Я заменил все символы "\n" и "\t" пробелом до создания HtmlDocument и после получения строки html, и это не повлияло ни на один из них.

Как сохранить пробел при использовании HtmlAgility Pack?

1 Ответ

3 голосов
/ 28 октября 2011

На самом деле HtmlDocument.OptionWriteEmptyNodes = true; сделал то, что я хочу. Теперь я понял.

...