Требуется событие CDATA, уведомляющее парсер stax для java

Я взял на себя обслуживание приложения, которое использует синтаксический анализатор stax, чтобы разбить XML-файл с множеством записей на отдельные записи для дальнейшей обработки. На мой взгляд, использование этого парсера для этой цели излишне, но я этого не писал.

Приложение теперь обнаруживает такие данные:

<name><![CDATA[A & B]]></name>

Наш текущий синтаксический анализатор возвращает событие для начального тега 'name'. Следующее событие - это символьное событие со значением «A & B».

На веб-странице Sun я нашел следующее:


Сообщение о событиях CDATA Javax.xml.stream.XMLStreamReader, реализованный в Streaming XML Parser, не сообщает о событиях CDATA. Если у вас есть приложение, которому необходимо получать такие события, настройте XMLInputFactory, чтобы установить следующее свойство report-cdata-event, зависящее от реализации:

XMLInputFactory factory = XMLInptuFactory.newInstance();
factory.setProperty("report-cdata-event", Boolean.TRUE);

Используемый нами синтаксический анализатор не поддерживает свойство 'report-cdata-event'.

Я хочу найти синтаксический анализатор, который сообщит о таком событии, чтобы мне не приходилось проверять каждый фрагмент текста на наличие символов, которые должны быть защищены конструкцией CDATA.

ОБНОВЛЕНИЕ:

После публикации этого я просмотрел некоторые из связанных вопросов и упомянул свойство isCoalescing; для записи устанавливается значение FALSE.

5
задан mzjn 21 December 2011 в 14:55
поделиться