gpt4 book ai didi

java - Stax 未检测到结束元素

转载 作者:数据小太阳 更新时间:2023-10-29 02:02:18 27 4
gpt4 key购买 nike

我正在读取与下面相同的 XML 文件:

<ts>
<tr comment="" label="tr1">
<node order="1" label="" />
</tr>
</ts>

我希望下面的代码打印出三个 e在屏幕上:

XMLInputFactory factory = XMLInputFactory.newInstance();
XMLStreamReader sr = factory.createXMLStreamReader(new FileReader("test.xml"));

while (sr.hasNext()) {
int eventType = sr.next();

if (eventType == XMLStreamReader.START_DOCUMENT) {
continue;
} else if (eventType == XMLStreamReader.END_ELEMENT) {
System.out.println("e");
} else if (eventType == XMLStreamReader.START_ELEMENT) {
System.out.println("s");
}
}

但是没用!关于如何解决问题的任何想法?

注意:我觉得是跟self-closed-tags有关,比如:<myTag id="1" />

最佳答案

我在 Windows 上使用 JDK 1.7,得到的结果与 Blaise Doughan 相同:

s
s
s
e
e
e

我认为这与 <node order="1" label="" /> 无关自 documentation指出:

NOTE: empty element (such as <tag/>) will be reported with two separate events: START_ELEMENT, END_ELEMENT - This preserves parsing equivalency of empty element to <tag></tag>. This method will throw an IllegalStateException if it is called after hasNext() returns false.

远景:也许其他一些相关代码可能会导致奇怪的行为?

关于java - Stax 未检测到结束元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12124082/

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