2011-12-21 10 views
5

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.

Odpowiedz