Что было бы оптимальным способом, используя Jsoup, извлечь весь HTML (либо в строку, документ или элементы) между двумя блоками, которые соответствуют этому шаблону:
<strong>
{any HTML could appear here, except for a <strong> pair}
</strong>
...
{This is the HTML I need to extract.
any HTML could appear here, except for a <strong> pair}
...
<strong>
{any HTML could appear here, except for a <strong> pair}
</strong>
Используя регулярное выражение, это может быть просто, если я применю его ко всему body.html ():
(<strong>.+</strong>)(.+)(<strong>.+</strong>)
^
+----- There I have my HTML content
Но, как я узнал из подобной задачи , производительность могла бы быть улучшена (даже если код немного длиннее), если бы я использовал уже обработанный Jsoup DOM - за исключением того, что на этот раз ни Element.nextSibling()
ни Element.nextElementSibling()
не может прийти на помощь.
Я искал что-то вроде jQuery nextUntil в Jsoup, например, но не смог найти что-то похожее.
Возможно ли придумать что-то лучшее, чем описанный выше подход на основе регулярных выражений?