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.
		
		
		
		
			
				
					
					
						
							126 lines
						
					
					
						
							4.0 KiB
						
					
					
				
			
		
		
	
	
							126 lines
						
					
					
						
							4.0 KiB
						
					
					
				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);
 | 
						|
    }
 | 
						|
 | 
						|
}
 | 
						|
 |