使用 StAX 解析 xml:未获得大内容标签
Parsing xml with StAX: not getting a large content tag
我正在使用 StAX 解析我的 xml 文件,问题是当标签内容很大时,StAX 无法提供全部内容。
这是我的 xml 文档的一部分,payload 标签的内容要大得多,无法在 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 无法提供整个标签内容吗?
谢谢并致以最诚挚的问候。
您应该在其他事件之间串联所有 isCharacters
事件,或者设置 IS_COALESCING 属性。
就像 SAX 一样,STAX 可能会为您提供单个 运行 个字符作为多个事件。
我正在使用 StAX 解析我的 xml 文件,问题是当标签内容很大时,StAX 无法提供全部内容。 这是我的 xml 文档的一部分,payload 标签的内容要大得多,无法在 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 无法提供整个标签内容吗? 谢谢并致以最诚挚的问候。
您应该在其他事件之间串联所有 isCharacters
事件,或者设置 IS_COALESCING 属性。
就像 SAX 一样,STAX 可能会为您提供单个 运行 个字符作为多个事件。