pom
<dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <version>2.1.3</version> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-core</artifactId> <version>2.3.0.1</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>2.3.1</version> </dependency>
xml生成xsd
下载一个trang.jar ,将xml也放到jar包目录下
xml格式
验证方法:
使用xsd文件验证xml_xsd:attribute 读取_levelnini的博客-CSDN博客
解析xml信息到实体类(File可以直接读取文件,下面方法是接口是用的MultipartFile 文件)
digitalArchives为实体类 需要添加
@XmlRootElement引用
private static void inputStreamToFile(InputStream ins, File file) { try { OutputStream os = new FileOutputStream(file); int bytesRead = 0; byte[] buffer = new byte[8192]; while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) { os.write(buffer, 0, bytesRead); } os.close(); ins.close(); } catch (Exception e) { e.getMessage(); } } /** * 解析xml信息 * @param * @return */ private static digitalArchives convertXml(MultipartFile picture){ try { File toFile = null; InputStream ins = null; ins = picture.getInputStream(); toFile = new File(picture.getOriginalFilename()); inputStreamToFile(ins, toFile); ins.close(); JAXBContext jaxbContext = JAXBContext.newInstance(digitalArchives.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); digitalArchives archives = (digitalArchives) jaxbUnmarshaller.unmarshal(toFile); return archives; } catch (JAXBException e) { e.printStackTrace(); return null; } catch (IOException e) { e.printStackTrace(); return null; } }