我正在使用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无法提供整个标记内容吗? 谢谢和最好的问候。
答案 0 :(得分:2)
您应该在其他事件之间连接所有isCharacters
个事件,或者设置IS_COALESCING属性。
就像使用SAX一样,STAX可能会为您提供一系列字符作为多个事件。