使用以下模式:
switch (EventType) { case XMLStreamConstants.CHARACTERS: case XMLStreamConstants.Cdata: System.out.println(r.getText()); break; default: break; }完整样本:
import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.InputStream;import javax.xml.stream.XMLInputFactory;import javax.xml.stream.XMLStreamConstants;import javax.xml.stream.XMLStreamReader;public void readCDATAFromXMLUsingStax() { String yourSampleFile = "/path/toYour/sample/file.xml"; XMLStreamReader r = null; try (InputStream in = new BufferedInputStream(new FileInputStream(yourSampleFile));) { XMLInputFactory factory = XMLInputFactory.newInstance(); r = factory.createXMLStreamReader(in); while (r.hasNext()) { switch (r.getEventType()) { case XMLStreamConstants.CHARACTERS: case XMLStreamConstants.Cdata: System.out.println(r.getText()); break; default: break; } r.next(); } } catch (Exception e) { throw new RuntimeException(e); } finally { if (r != null) { try { r.close(); } catch (Exception e) { throw new RuntimeException(e); } } }}使用/path/toYour/sample/file.xml
<data> <![CDATA[ Sat Nov 19 18:50:15 2016 (1672822)]]> <![CDATA[Sat, 19 Nov 2016 18:50:14 -0800 (PST)]]> </data>
给出:
Sat Nov 19 18:50:15 2016 (1672822) Sat, 19 Nov 2016 18:50:14 -0800 (PST)



