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);
 | ||
|  |     }
 | ||
|  | 
 | ||
|  | }
 |