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

时间:2016-07-28 08:44:19

标签: java xml stax

我正在使用StAX来解析我的xml文件,问题是当标记内容很大时,StAX无法向我提供整个内容。 这是我的xml文档的一部分,有效负载标记的内容要大得多,无法在SOF中打印出来:

<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无法提供整个标记内容吗? 谢谢和最好的问候。

1 个答案:

答案 0 :(得分:2)

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

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