Мне нужно преобразовать HTML-строку в обычный текст (желательно с помощью пакета гибкости HTML). С правильными пробелами и, особенно, правильными разрывами строк.
И под "правильными разрывами строк" я имею в виду, что этот код:
<div>
<div>
<div>
line1
</div>
</div>
</div>
<div>line2</div>
Должен быть преобразован как
line1
line2
т.е. только один разрыв строки.
Большинство решений, которые я видел, просто конвертируют все теги <div> <br> <p>
в \n
, которые, очевидно, s * cks.
Любые предложения для рендеринга html-to-plaintext для С#? Не полный код, по крайней мере, общие логические ответы, такие как "заменить все закрывающие DIV на разрывы строк, но только если следующий брат не является DIV тоже" действительно поможет.
Вещи, которые я пробовал: просто получить свойство .InnerText
(очевидно, неправильно), регулярное выражение (медленное, болезненное, много хаков, также регулярные выражения в 12 раз медленнее, чем HtmlAgilityPack - я его измерил), это и тому подобное (возвращает больше разрывов строк)