Xalan - TransformerHandler для подключения к событиям трансформации

Мне нужно подключиться к триггерам событий во время трансформации Xalan.

Т.е. когда узел найден, когда обрабатывается его строковое содержимое, в основном методы startElement(), endElement(), characters() и т. Д.

Я создал экземпляр TransformerHandler, но изо всех сил пытаюсь увидеть, как добавить это в Transformer...

У кого-нибудь есть пример того, как я могу это сделать.

Я рылся в сети, но ничего не могу найти - может, я просто искал не ту вещь...

Большое спасибо

1 ответ

Мониторинг событий XML SAX не предоставит необходимую информацию, согласно добавленному вами комментарию:

Вывод будет HTML на основе входного XML. Мне нужно отслеживать размер выводимого текста. Например, когда я нажимаю 10k, мне нужно вызвать событие. Мне также нужно знать, на каком узле я на данный момент.

В зависимости от сложности таблицы стилей преобразователю может потребоваться загрузить весь XML-файл в память, например дерево DOM, перед началом обработки.

Вам понадобится 2 крючка:

  1. Определить, когда 10k выходных было сгенерировано.
  2. Отслеживайте, какая часть таблицы стилей XSLT обрабатывается в данный момент.

Для #1 единственное место, где вы будете знать размер вывода, находится в потоке вывода, поэтому вам придется обернуть FileOutputStream будет поток, который контролирует размер.

Для #2 вы можете сделать это, используя TraceListener, мониторинг SelectionEvent, Я никогда не использовал это, но это звучит как то, что вы ищете.

Другие вопросы по тегам