用StAX解析xml:没有获取大内容标记

问题描述:

我使用StAX来解析我的xml文件,问题是当标记内容很大时,StAX无法给我全部内容。 这里是我的XML文档的一部分,有效载荷标记的内容这么多较大,无法打印这一切在SOF:用StAX解析xml:没有获取大内容标记

<payload>{\"id\": \"ENTITY24\",\"attr1\": {\"type\": \"sensor\",\"type\": \"type1\",\"value\": \"val1\",\"metadata\": {}}}</payload> 

这里是我的代码解析它的一部分:

if(startElement.getName().getLocalPart().equals("payload")){ 
    xmlEvent = xmlEventReader.nextEvent(); 
    if(xmlEvent.isCharacters()){ 
     setPayload(xmlEvent.asCharacters().getData());       
    } 
} 

任何想法为什么StAX无法提供整个标签内容? 感谢和问候。

您应该连接其他事件之间的所有isCharacters事件或设置IS_COALESCING属性。

就像使用SAX一样,STAX可能会为您提供一次字符作为多个事件。