当前状态不是START_ELEMENT

时间:2011-11-16 03:37:23

标签: xml parsing stax

我有这个XML

<request>
<accountid>123</accountid>
<accountid>1234</accountid>
</request>

我正在使用STAX解析器来阅读

XMLEventReader eventReader = inputFactory.createXMLEventReader(reader);
if (startElement.getName().toString().equals("accountid"))
{
item.account = eventReader.getElementText();
}

但我得到了

com.ctc.wstx.exc.WstxParsingException: Current state not START_ELEMENT
 at [row,col {unknown-source}]: [2,31]
    at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:630)
    at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:461)
    at com.ctc.wstx.sr.BasicStreamReader.getElementText(BasicStreamReader.java:661)
    at com.ctc.wstx.evt.WstxEventReader.getElementText(WstxEventReader.java:118)
    at Pavan.main(Pavan.java:49)

2 个答案:

答案 0 :(得分:2)

当前导空格潜入XML文件第一行的开头时,我遇到了此错误消息。

答案 1 :(得分:0)

我遇到了这个错误,看来这是Wstx implmenetation中的一个错误。我碰巧在同一个问题上打了一个jira,但机票已关闭。

http://jira.codehaus.org/browse/WSTX-179

如果我不使用wstx,我不会看到这个问题。现在我使用sjsxp.jar而不是wstx,它开始工作了。不确定是否是Wstx中的某个错误或导致xml失败的验证功能。

我是一名glassfish用户,我不得不重写glassfish库进行XML解析。