意外的EOF;期待元素 <attribute> 的关闭标记

Posted

技术标签:

【中文标题】意外的EOF;期待元素 <attribute> 的关闭标记【英文标题】:Unexpected EOF; was expecting a close tag for element <attribute> 【发布时间】:2012-07-26 06:50:58 【问题描述】:

我正在使用 stax 解析一个 xml 文件并将提取的数据写入数据库。它适用于小文件,但是当我解析一个大文件时,它会抛出这个异常。查看xml文件,根据给定的行列是gud。谁能告诉我,为什么会这样?

com.ctc.wstx.exc.WstxEOFException: Unexpected EOF; was expecting a close tag for element <attribute>
at [row,col   unknown-source]: [787,1401]
at com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:686)
at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2730)
at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
at com.ctc.wstx.evt.WstxEventReader.nextEvent(WstxEventReader.java:196)

sun.reflect.GeneratedMethodAccessor3625.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:122)
 at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)

【问题讨论】:

很难说没有看到您正在解析的实际文件,至少是导致错误的部分。 它在解析时生成不同的 [row,col],它不会一次又一次地复制相同的内容。 如何将 xml 文件提供给 Stax 解析器?看起来它很快就要结束了。 从目录中查找扩展名为.xml的文件,一个接一个地解析文件,一旦文件被解析并写入数据库,它就会删除解析的文件。它搜索给定的关键字,搜索该特定单词并从那里解析。 我的意思是,您使用的是简单的 FileInputStream 吗?别的东西?这些文件是否有可能在您解析它们时被外部进程操作? 【参考方案1】:

我遇到了同样的问题。 wstx-asl.jar 和 stax2-api-3.1.1.jar 中的文件结构类似。因此,它不是从 stax2-api-3.1.1.jar 中选择,而是从 wstx-asl.jar 中错误地选择,因此发生了异常。从类路径中删除 wstx-asl.jar 解决了这个问题。

【讨论】:

【参考方案2】:

问题不在库或代码中。请检查您的服务器和 wsdl 服务器之间的连接。如果你尝试 curl 。它可能会收到自定义的网络消息,该消息不能拆分您的代码。因此,请咨询您的网络团队和安全团队以允许此 URL。会解决问题的

【讨论】:

以上是关于意外的EOF;期待元素 <attribute> 的关闭标记的主要内容,如果未能解决你的问题,请参考以下文章

SQL 编译错误:位置 157 的语法错误第 5 行意外'<EOF>'

从传输流收到意外的 EOF 或 0 个字节

使用 R 错误从 BigQuery 读取数据时出现语法错误:在第 1 行第 10 列遇到“FROM”“FROM”。期待:<EOF>

SyntaxError:解析时出现意外的 EOF

语法错误,意外的 ',',期待 ')' 在纤细的导轨中

语法错误,意外 ')',期待 '='