Java XMLEventReader的当前事件
发件人: 此处引用的Java XMLEventReader的当前事件,java,iterator,stax,Java,Iterator,Stax,发件人: 此处引用的XMLEventReader的“当前”事件是什么 是上次调用该读卡器返回的事件: a) 到nextEvent(),或 b) 要peek() 根据上一个问题的答案,您如何解释清单2中的这个片段: 我遇到了一个ParseError:解析器必须在START\u元素上才能读取下一个文本请注意,.peek()不会从流中读取。.peek()的文档说明: 检查下一个XMLEvent,而不从流中读取它。退换商品 如果流处于EOF或不再具有XMLEvents,则为null。打电话给 peek(
XMLEventReader
的“当前”事件是什么
是上次调用该读卡器返回的事件:
a) 到nextEvent()
,或b) 要
peek()
根据上一个问题的答案,您如何解释清单2中的这个片段:
我遇到了一个
ParseError:解析器必须在START\u元素上才能读取下一个文本
请注意,.peek()
不会从流中读取。.peek()
的文档说明:
检查下一个XMLEvent
,而不从流中读取它。退换商品
如果流处于EOF
或不再具有XMLEvents
,则为null。打电话给
peek()
将等于next()
的下一次返回
因此,指针的位置不会改变。因此,您可能不在START\u元素
,而很可能在START\u文档
。请调用.nextEvent()
而不是.peek()
,这样应该可以使它正常工作
祝你好运,
马克斯
String getElementText()
Reads the content of a text-only element.
Precondition: the current event is START_ELEMENT.
Postcondition: the current event is the corresponding END_ELEMENT.
while (reader.hasNext()) {
XMLEvent event = reader.peek();
if (event.isStartElement()) {
StartElement start = event.asStartElement();
if (ICON.equals(start.getName())) {
System.out.println(reader.getElementText());
break;
}
}
reader.nextEvent();
}