我正在尝试编写一个接收xml文件并解析它并进行一些额外处理的服务。 在UI控制器中,我将多部分文件内容转换为字符串并将其传递给服务。 从UI控制器 - 我上传文件并调用服务方法来解析xml文件
MultipartFile newFile=multiPartRequest.getFile("newFileUpload");
String fileContent = new String(newFile.getBytes());
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
InputSource is = new InputSource(new StringReader(fileContent));
doc = dBuilder.parse(is);
但是,doc始终为null。我休息这个xml文件的最佳方法是什么?
答案 0 :(得分:0)
我认为这是
的问题String fileContent String fileContent = new String(newFile.getBytes());
由于并非文件的所有字节都只是文本,因此您的标题,eof和字节不代表文本。
你应该做的是创建一个InputStream并构建文档,如下所示:
try{
MultipartFile newFile=multiPartRequest.getFile("newFileUpload");
InputStream is = new newFile.getInputStream();
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
} catch (SAXException | IOException | ParserConfigurationException ex) {
Logger.getLogger(JavaApplication4.class.getName()).log(Level.SEVERE, null, ex);
}