Использование SAX-анализатора, вероятно, то, что вам нужно, потому что он читает исходный документ от начала до конца, вызывая ваш код для каждого найденного узла.
SAX - это синтаксический анализатор XML, и большая часть HTML не является идеальным XML. Таким образом, чтобы использовать SAX, вам нужен инструмент, который может обрабатывать несовершенные данные. Я предлагаю TagSoup , который является бесплатным и лицензирован Apache.
Затем вы пишете класс, который реализует org.xml.sax.ContentHandler . Этот класс будет получать обратные вызовы от синтаксического анализатора SAX, когда синтаксический анализатор читает ваш ввод. Он должен вызывать методы в вашем коде так:
startElement("p")
characters("Hello")
startElement("b")
characters("World")
endElement("b")
startElement("u")
characters("Underlined")
endElement("u")
endElement("p")
(Реальные методы в ContentHandler имеют еще несколько параметров, которые я упустил из примера для простоты)