XML工具类 - XmlUtils.java

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XML工具类 - XmlUtils.java相关的知识,希望对你有一定的参考价值。

XML工具类,提供序列化XML、反序列化XML、获取指定节点的值的方法。

 

源码如下:(点击下载 - 技术分享XmlUtils.java技术分享dom4j-1.6.1.jar技术分享xstream-1.4.7.jar )

 1 import org.dom4j.Document;
 2 import org.dom4j.DocumentException;
 3 import org.dom4j.DocumentHelper;
 4 import org.dom4j.Element;
 5 import com.thoughtworks.xstream.XStream;
 6 
 7 /**
 8  * XML工具类
 9  * 
10  */
11 public class XmlUtils {
12 
13     private final static String XML_DECLARATION = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
14 
15     private XmlUtils() {
16     }
17 
18     /**
19      * 序列化XML
20      * 
21      * @param obj
22      * @param clazz
23      * @return
24      */
25     public static <T> String toXML(Object obj) {
26         XStream stream = getXStream();
27         stream.processAnnotations(obj.getClass());
28         return new StringBuffer(XML_DECLARATION).append(stream.toXML(obj)).toString();
29     }
30 
31     /**
32      * 反序列化XML
33      * 
34      * @param xmlStr
35      * @param clazz
36      * @return
37      */
38     public static <T> T fromXML(String xmlStr, Class<T> clazz) {
39         XStream stream = getXStream();
40         stream.processAnnotations(clazz);
41         Object obj = stream.fromXML(xmlStr);
42         try {
43             return clazz.cast(obj);
44         } catch (ClassCastException e) {
45             return null;
46         }
47     }
48 
49     /**
50      * 获取指定节点的值
51      * 
52      * @param xpath
53      * @param params
54      * @return
55      */
56     public static String getNodeValue(String xpath, String dataStr) {
57         try {
58             // 将字符串转为xml
59             Document document = DocumentHelper.parseText(dataStr);
60             // 查找节点
61             Element element = (Element) document.selectSingleNode(xpath);
62             if (element != null) {
63                 return element.getStringValue();
64             }
65         } catch (DocumentException e) {
66             e.printStackTrace();
67         }
68         return "";
69     }
70 
71     /**
72      * 获取Xstream实例
73      * 
74      * @return
75      */
76     public static XStream getXStream() {
77         return new XStream();
78     }
79 }

 

以上是关于XML工具类 - XmlUtils.java的主要内容,如果未能解决你的问题,请参考以下文章

15Java常用类(数组工具类Arrays)基本类型包装类(Integer类)正则表达式String的split(String regex)和replaceAll(String regex, (代码片

代码片--练习匿名内部类

代码片-策略模式+工厂模式

代码片-策略模式+工厂模式

代码片-策略模式+工厂模式

代码片-策略模式+工厂模式