我正在使用stax解析器在我的应用程序中读取公共api中的xml文件。 api将输入流作为参数,我正在执行类似下面的操作
public Object <commonApi>(InputStream is)
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
XMLEventReader reader = inputFactory.createXMLEventReader(is);
try{
while (parser.hasNext()) {
XMLEvent event = parser.nextEvent();
// reaming parsing logic
}
} Catch (Exception e){
e.printStackTrace();
}
}
如果xml文件中的编码是UTF-8,则问题是可行的。如果它是UTF-16,则它无法正确读取..给出以下异常
javax.xml.stream.XMLStreamException:[row,col]处的ParseError:[1,41] 消息:prolog中不允许使用内容。
我无法更改常见API的签名。我需要对输入流进行操作..有什么建议吗?