XMLEventReader 返回 STAX

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


下面是我的代码:


    XMLInputFactory factory = XMLInputFactory.newInstance();

    XMLEventReader eventReader = factory.createXMLEventReader(new FileReader(exportedFilePath));

我调试并检查了eventReader,并且在正在工作的项目中是f in property,在不工作的项目中是m。

http://img4.mukewang.com/6288d3a40001f7df04560258.jpg

http://img3.mukewang.com/6288d3aa0001408904150177.jpg

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


以下是进口:


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;


郎朗坤
浏览 113回答 2
2回答

森林海

这应该有助于:System.setProperty("javax.xml.stream.XMLInputFactory", "com.sun.xml.internal.stream.XMLInputFactoryImpl");

Qyouu

它可能是由 Classpath 问题引起的。可能是在您的类之前加载了另一个同名的类(它甚至可能在框架内或运行时环境中)阻止加载您引用的类,例如您的 stax 解析器的不同版本。你有三个选择:尝试找出该环境中存在的 StAX 解析器版本,并针对它编译您的代码为您的库使用自己的类加载器/容器,这将保证加载正确的版本,尝试重新排序你的库首先出现的类路径 - 尽管它可能会破坏其他地方的系统,所以我真的不推荐。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java