gpt4 book ai didi

java - XMLEventReader 的当前事件

转载 作者:行者123 更新时间:2023-12-01 15:31:29 25 4
gpt4 key购买 nike

来自XMLEventReader :

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.

这里提到的 XMLEventReader 的“当前”事件是什么?

是否是该读取器上次调用返回的事件:

a) 到 nextEvent(),或
b) 到peek()

根据上一个问题的答案,您如何解释 StAX'ing up XML 的 list 2 中的这段代码片段:

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();
}

我遇到ParseError:解析器必须位于 START_ELEMENT 上才能读取下一个文本

最佳答案

请注意,.peek() 不会从 Stream 中读取。 .peek() 的文档说:

Check the next XMLEvent without reading it from the stream. Returns null if the stream is at EOF or has no more XMLEvents. A call to peek() will be equal to the next return of next().

因此,您的指针的位置不会改变。因此,您可能不在 START_ELEMENT 上,但很可能在 START_DOCUMENT 上。请调用 .nextEvent() 而不是 .peek(),这样应该可以正常工作。

祝你好运,最大

关于java - XMLEventReader 的当前事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9477777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com