使用StAX解析xml的java:没有获得大的内容标记
我使用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 楼答案
您应该在其他事件之间连接所有
isCharacters
事件,或者设置IS_COALESCING属性与SAX一样,STAX可以将一次字符运行作为多个事件提供给您