gpt4 book ai didi

java - XmlStreamReader 在开始时行为随机

转载 作者:行者123 更新时间:2023-12-01 10:08:02 26 4
gpt4 key购买 nike

我希望 XmlStreamReader 从文档的开头启动(显然),然后当我对其调用 next() 时跳转到 XML 文档的根目录。然而,可怕的是,我看到它跳转到第一个带有文本的标签,并且总是忽略根,并且经常(???)第二个标签。

文档如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<objektliste xmlns="http://www.pixelboxx.de/ns/erco/translations/1.0">
<uebersetzungen key="122671" attribute="7505">
<thumbnail>abrakadabra.jpg</thumbnail>
<text sprache="1031">We like the abla abla abla</text>
<text sprache="2057">We like the spoonBlaBlaBla[en]</text>
<text sprache="1036">Wicher</text>
</uebersetzungen>
<uebersetzungen key="122679" attribute="7505">
<thumbnail>122679.jpg</thumbnail>
<text sprache="1031">Kiefer</text>
<text sprache="1036">franek</text>
</uebersetzungen>
</objektliste>

我疯了吗?我的 eclipse 是否疯了,还是我没有看到明显的东西?该程序似乎总是省略“objektliste”,并且通常首先跳转到“缩略图”,尽管在之前的调试 session 中它似乎表现得更加随机。帮助!!!

顺便说一句,代码非常简单:

    XMLStreamReader streamReader = factory.createXMLStreamReader( is);

while( streamReader.hasNext())
{
//event type 7 here, everything seems to be ok.
streamReader.next();
//bang! armaggeddon - skips the root, jumps to thumbnail.

最佳答案

streamReader.next() 的调用是基于事件的。

The next() method causes the reader to read the next parse event. The next() method returns an integer which identifies the type of event just read.

The event type can be determined using getEventType().

我认为您可能遇到了结束元素事件出现的问题,而您没有预料到会出现这种情况。

使用以下代码,我看到正确的订单正在按预期进行处理:

XMLInputFactory factory = XMLInputFactory.newInstance();
XMLStreamReader streamReader = factory.createXMLStreamReader(is);

while( streamReader.hasNext()) {
int eventType = streamReader.next();
switch (eventType) {
case XMLStreamReader.START_ELEMENT:
String elementName = streamReader.getLocalName();
System.out.println("Element: " + elementName);
break;
case XMLStreamReader.END_ELEMENT:
break;
}
}

这会产生预期的输出:

Element: objektliste
Element: uebersetzungen
Element: thumbnail
Element: text
Element: text
Element: text
Element: uebersetzungen
Element: thumbnail
Element: text
Element: text

关于java - XmlStreamReader 在开始时行为随机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36319622/

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