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. }

XML工具类 - XmlUtils.java的更多相关文章

  1. Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

    Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...

  2. 【java工具类】java做的一个xml转Excel工具,基于maven工程

    说明:适合数据库导出为xml时转成Excel 本工具将上传至GitHub:https://github.com/xiaostudy/xiaostudyAPI3 doc4j的maven依赖 <!- ...

  3. Java常用工具类---XML工具类、数据验证工具类

    package com.jarvis.base.util; import java.io.File;import java.io.FileWriter;import java.io.IOExcepti ...

  4. JaxbUtil转json转XML工具类

    json转换为XML工具类 package com.cxf.value; import org.springframework.util.StringUtils; import javax.xml.b ...

  5. DOM4j XML 工具类

    之前项目有跟客户系统对接一个webservice系统,该接口有传参和返回都是xml,所以找时间百度研究了一下dom4j,dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件 ...

  6. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  7. Java字符串转16 进制工具类Hex.java

    Java字符串转16 进制工具类Hex.java 学习了:https://blog.csdn.net/jia635/article/details/56678086 package com.strin ...

  8. Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie

    Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie >>>>>>>>>>>>& ...

  9. UrlUtils工具类,Java URL工具类,Java URL链接工具类

    UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>&g ...

随机推荐

  1. Linux 命令 - mv: 移动或重命名文件

    命令格式 cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY ...

  2. Ubuntu Linux 分区简易教程

    关于Linux系统下的“分区”问题,对于新手来说一直是很头疼的.我来简单写一下,它的“分区”方法,规则. 声明:我为了让没有接触过Linux系统的人,理解更加简单.所以在言语表述上不是很规范,专业.我 ...

  3. Access和Sql区别

    假设表game有一字段为gameYuiJian为bit字段(SQL SERVER 20005)和"是/否"字段(ACCSS数据库),在编写脚本文件时,如下才能正确执行 SQL st ...

  4. CentOS安装Node.js简单教程

    记录一下自己安装过程 先安装gcc-c++编译环境和openssl  代码如下 复制代码 yum install gcc-c++ openssl-devel wget http://nodejs.or ...

  5. Cocos2d-x加速度计实例:运动的小球

    下面我们通过一个实例介绍一下如果通过层加速度计事件实现访问加速度计.该实例场景如下图所示,场景中有一个小球,当我们把移动设备水平放置,屏幕向上,然后左右晃动移动设备来改变小球的位置. 下面我们再看看具 ...

  6. windows API 核心编程学习心得

    一.错误处理 在内部,当windows函数检测到错误时,它会使用“线程本地存储区”的机制将相应的错误代码与“主调线程”关联到一起. winError.h 一般在C:\Program Files\Mic ...

  7. Apache使用mysql认证用户

    使用MySQL进行认证 第1步:下载MySQL认证模块,并更名为mod_auth_mysql.so文件,并保存在apache的modules目录下 第2步:apache要加载此功能模块 LoadMod ...

  8. 119. Pascal's Triangle II

    Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return [1,3, ...

  9. Git初始化与上传

    一: 现在git上Create个repository 二:进入要长传的工程目录打开git bash git initgit statusgit add .//add .的时候文件不要被占用. git ...

  10. 从一个乘法来分析C语言

    昨天碰到一个很奇怪的问题,首先来看这段代码: #include<stdio.h> int main(int argc,char *argv[]) { ; ; long long res1 ...