首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XMLEventReader返回STAX

XMLEventReader返回STAX
EN

Stack Overflow用户
提问于 2019-01-25 09:25:03
回答 2查看 283关注 0票数 1

我使用XMLEventReader解析大型xml文件,它在一个项目中运行良好,但是当我在另一个项目中导入相同的类时,它不能很好地解析xml,并给出STAX Event

下面是我的代码:

代码语言:javascript
复制
    XMLInputFactory factory = XMLInputFactory.newInstance();
    XMLEventReader eventReader = factory.createXMLEventReader(new FileReader(exportedFilePath));

我调试并检查了eventReader,在正在工作的项目中,在属性上是f,在不工作的项目中有m。

我无法捕捉到异常,因为它是相同的类和相同的导入。

以下是进口商品:

代码语言:javascript
复制
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.Attribute;
import javax.xml.stream.events.Characters;
import javax.xml.stream.events.EndElement;
import javax.xml.stream.events.Namespace;
import javax.xml.stream.events.StartElement;
import javax.xml.stream.events.XMLEvent;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-25 11:39:24

这应有助于:

代码语言:javascript
复制
System.setProperty("javax.xml.stream.XMLInputFactory", "com.sun.xml.internal.stream.XMLInputFactoryImpl");
票数 1
EN

Stack Overflow用户

发布于 2019-01-25 11:01:38

这可能是由克拉斯帕特问题造成的。

可能是在类之前加载了同名的另一个类(甚至可能在框架内或运行时环境中),从而阻止加载所引用的类,例如stax解析器的不同版本。

你有三个选择:

  • 尝试找出该环境中存在的StAX解析器的版本,并根据它编译代码。
  • 为库使用自己的类加载器/容器,这将确保加载了正确的版本,
  • 尝试重新排序库优先的类路径--尽管它可能会破坏其他地方的系统,所以我并不真正推荐。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54362280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档