You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					127 lines
				
				4.0 KiB
			
		
		
			
		
	
	
					127 lines
				
				4.0 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								package com.ynxbd.wx.utils;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import javax.xml.bind.JAXBContext;
							 | 
						||
| 
								 | 
							
								import javax.xml.bind.JAXBException;
							 | 
						||
| 
								 | 
							
								import javax.xml.bind.Marshaller;
							 | 
						||
| 
								 | 
							
								import javax.xml.bind.Unmarshaller;
							 | 
						||
| 
								 | 
							
								import javax.xml.stream.XMLInputFactory;
							 | 
						||
| 
								 | 
							
								import javax.xml.stream.XMLStreamException;
							 | 
						||
| 
								 | 
							
								import javax.xml.stream.XMLStreamReader;
							 | 
						||
| 
								 | 
							
								import java.io.*;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * xml工具类
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								public class XMLUtil {
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 将对象直接转换成String类型的 XML输出
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param obj 对象
							 | 
						||
| 
								 | 
							
								     * @return xml
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static String convertToXml(Object obj) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        try {
							 | 
						||
| 
								 | 
							
								            // 创建输出流
							 | 
						||
| 
								 | 
							
								            StringWriter sw = new StringWriter();
							 | 
						||
| 
								 | 
							
								            // 利用jdk中自带的转换类实现
							 | 
						||
| 
								 | 
							
								            JAXBContext context = JAXBContext.newInstance(obj.getClass());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            Marshaller marshaller = context.createMarshaller();
							 | 
						||
| 
								 | 
							
								            // 格式化xml输出的格式
							 | 
						||
| 
								 | 
							
								            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
							 | 
						||
| 
								 | 
							
								            // 将对象转换成输出流形式的xml
							 | 
						||
| 
								 | 
							
								            marshaller.marshal(obj, sw);
							 | 
						||
| 
								 | 
							
								            return sw.toString();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        } catch (JAXBException e) {
							 | 
						||
| 
								 | 
							
								            e.printStackTrace();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return null;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 将对象根据路径转换成xml文件
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param obj  对象
							 | 
						||
| 
								 | 
							
								     * @param path 路径
							 | 
						||
| 
								 | 
							
								     * @return 是否成功
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static boolean convertToXml(Object obj, String path) {
							 | 
						||
| 
								 | 
							
								        try {
							 | 
						||
| 
								 | 
							
								            // 利用jdk中自带的转换类实现
							 | 
						||
| 
								 | 
							
								            JAXBContext context = JAXBContext.newInstance(obj.getClass());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            Marshaller marshaller = context.createMarshaller();
							 | 
						||
| 
								 | 
							
								            // 格式化xml输出的格式
							 | 
						||
| 
								 | 
							
								            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
							 | 
						||
| 
								 | 
							
								            // 将对象转换成输出流形式的xml
							 | 
						||
| 
								 | 
							
								            // 创建输出流
							 | 
						||
| 
								 | 
							
								            FileWriter fw = null;
							 | 
						||
| 
								 | 
							
								            fw = new FileWriter(path);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            marshaller.marshal(obj, fw);
							 | 
						||
| 
								 | 
							
								            return true;
							 | 
						||
| 
								 | 
							
								        } catch (Exception e) {
							 | 
						||
| 
								 | 
							
								            e.printStackTrace();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return false;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @param xmlStr xml
							 | 
						||
| 
								 | 
							
								     * @param clazz  类型
							 | 
						||
| 
								 | 
							
								     * @return 对象
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static <T> Object convertXmlStrToObject(String xmlStr, Class<T> clazz) {
							 | 
						||
| 
								 | 
							
								        try {
							 | 
						||
| 
								 | 
							
								            JAXBContext context = JAXBContext.newInstance(clazz);
							 | 
						||
| 
								 | 
							
								            // 进行将Xml转成对象的核心接口
							 | 
						||
| 
								 | 
							
								            XMLInputFactory xif = XMLInputFactory.newFactory();
							 | 
						||
| 
								 | 
							
								            xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
							 | 
						||
| 
								 | 
							
								            xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);
							 | 
						||
| 
								 | 
							
								            XMLStreamReader xsr = xif.createXMLStreamReader(new StringReader(xmlStr));
							 | 
						||
| 
								 | 
							
								            Unmarshaller unmarshaller = context.createUnmarshaller();
							 | 
						||
| 
								 | 
							
								            return unmarshaller.unmarshal(xsr);
							 | 
						||
| 
								 | 
							
								        } catch (JAXBException | XMLStreamException e) {
							 | 
						||
| 
								 | 
							
								            e.printStackTrace();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return null;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 将file类型的xml转换成对象
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param xmlPath 文件路径
							 | 
						||
| 
								 | 
							
								     * @param clazz   类型
							 | 
						||
| 
								 | 
							
								     * @return 数据对象
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static <T> Object convertXmlFileToObject(String xmlPath, Class<T> clazz) {
							 | 
						||
| 
								 | 
							
								        try {
							 | 
						||
| 
								 | 
							
								            JAXBContext context = JAXBContext.newInstance(clazz);
							 | 
						||
| 
								 | 
							
								            Unmarshaller unmarshaller = context.createUnmarshaller();
							 | 
						||
| 
								 | 
							
								            FileReader fr = null;
							 | 
						||
| 
								 | 
							
								            try {
							 | 
						||
| 
								 | 
							
								                fr = new FileReader(xmlPath);
							 | 
						||
| 
								 | 
							
								            } catch (FileNotFoundException e) {
							 | 
						||
| 
								 | 
							
								                e.printStackTrace();
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            return unmarshaller.unmarshal(fr);
							 | 
						||
| 
								 | 
							
								        } catch (JAXBException e) {
							 | 
						||
| 
								 | 
							
								            e.printStackTrace();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return null;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static void main(String[] args) {
							 | 
						||
| 
								 | 
							
								        String a = "批次编号:20043945妇科材料库“一次性使用无菌阴道扩张器 中号 A型轴转式\"的库存为2已不足执行2个过程失败!";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        String s1 = a.replaceAll("\"", "”");
							 | 
						||
| 
								 | 
							
								        String s = s1.replaceAll(" ", "");
							 | 
						||
| 
								 | 
							
								        System.out.println(s1);
							 | 
						||
| 
								 | 
							
								        System.out.println(s);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |