Przejąłem obsługę aplikacji, która używa parsera stax, aby podzielić plik XML wielu rekordów na poszczególne rekordy w celu dalszego przetwarzania. Używanie tego typu analizatora do tego celu jest moim zdaniem przesadą, ale nie napisałem tego.Potrzebujesz zdarzenia CDATA powiadamiającego o stax parserze dla java
Aplikacja jest teraz napotykają dane, takie jak ten:
<name><![CDATA[A & B]]></name>
Aktualnym parser zwraca imprezę na rozpoczęcie nazwanej zmiennej. Następne wydarzenie jest zdarzeniem znakowym o wartości "A & B".
Od strony Sun Znalazłem to:
Reporting CDATA Imprezy javax.xml.stream.XMLStreamReader realizowanych w Streaming XML Parser nie zgłasza zdarzenia CDATA. Jeśli masz aplikację, która musi otrzymać takie zdarzenia skonfiguruj XMLInputFactory ustawić następujące implementacji specyficznych własności raport-CDATA-event:
XMLInputFactory factory = XMLInptuFactory.newInstance();
factory.setProperty("report-cdata-event", Boolean.TRUE);
Parser używamy nie obsługuje „raport -cdata-event 'właściwość.
Chcę znaleźć parser, który zgłosi takie zdarzenie, więc nie muszę sprawdzać każdego fragmentu tekstu pod kątem znaków, które muszą być chronione przez konstrukcję CDATA.
UPDATE:
Po wysłaniu tego przeglądałem niektóre pytania związane i nie było wzmianki o majątku „isCoalescing”; dla rekordu jest ustawiona na FALSE.