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