Справочная информация: я пишу Java-программу для просмотра HTML-файлов и замены всего содержимого в тегах, которые не <script>
или <style>
, на Lorem Ipsum. Первоначально я делал это с помощью регулярного выражения, просто удаляя все между a> и <, что на самом деле работало довольно хорошо (я знаю, кощунственно), но я пытаюсь превратить это в инструмент, который другие могут найти полезным, чтобы я не посмел угрожать святости вселенной больше, пытаясь использовать регулярные выражения в html. </p>
Я пытаюсь использовать HtmlCleaner, библиотеку Java, которая привлекла меня, потому что у нее нет других зависимостей. Однако, пытаясь реализовать его, я не смог разобраться с html следующим образом:
<div>
This text is in the div <span>but this is also in a span.</span>
</div>
Проблема проста. Когда TagNodeVisitor достигает div, если я заменю его содержимое нужным количеством губ, он удалит тег span. Но если я разверну только тэги TagNode без других детей, я бы пропустил первый фрагмент текста.
HtmlCleaner имеет объект ContentNode, но у этого объекта нет метода замены. Все, что я могу придумать, чтобы справиться с этим, кажется слишком сложным. Кто-нибудь знает способ справиться с этим, с HtmlCleaner или какой-либо другой библиотекой синтаксического анализа, с которой вы более знакомы?