Один из подходов заключается в создании ContentHandler
, который отслеживает события, сигнализирующие о входе или выходе из элемента <small>
. Этот обработчик действует как прокси и в "нормальном" режиме передает события SAX прямо в "реальный" ContentHandler
.
Однако, когда обнаружен вход в элемент <small>
, прокси-сервер отвечает за создание TransformerHandler
(с преобразованием no-op, «null»), отвес до DOMResult
. TransformerHandler
ожидает всех событий, которые мог бы произвести полный, правильно сформированный документ; Вы не можете немедленно отправить ему событие startElement
. Вместо этого имитируйте начало нового документа, вызывая сначала setDocumentLocator
, startDocument
и другие необходимые события в экземпляре TransformerHandler
.
Затем, до тех пор, пока прокси-сервер не обнаружит конец элемента <small>
, все события перенаправляются на этот TransformerHandler
вместо "реального" ContentHandler
. Когда встречается закрывающий тег </small>
, прокси-сервер имитирует конец документа, вызывая endDocument
для TransformerHandler
. DOM теперь доступен как результат TransformerHandler
, который содержит только фрагмент <small />
.