zoukankan      html  css  js  c++  java
  • XML工具类

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

     

    源码如下:(点击下载 - XmlUtils.javadom4j-1.6.1.jarxstream-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 }
  • 相关阅读:
    java操作redis之jedis篇
    实现指定步长循环后移字符串数组算法
    【PAT Advanced Level】1006. Sign In and Sign Out (25)
    银行计算利息
    中国人、美国人、北京人
    网络子系统55_ip协议分片重组_加入ipq
    C#拦截系统消息的方法-Application.AddMessageFilter
    C#实现在Form上截取消息的两种方法
    Geek改变世界
    中国黑客传说:游走在黑暗中的精灵
  • 原文地址:https://www.cnblogs.com/zhoubang521/p/5200617.html
Copyright © 2011-2022 走看看