最近遇到XML转对象进行业务操作的问题

这是我需要解析的XML

1,建XML对应自己需要参数的Bean。有的很长很乱,没必要全部建,只建自己需要的就行了

import lombok.Data;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.Date; @Data
@XmlRootElement(name = "EventNotificationAlert")//这个是上面图片开头和结尾那个标签名称,你需要替换成你自己的
@XmlAccessorType(XmlAccessType.FIELD)
public class EventNotificationAlert {
private String ipAddress;
private String portNo;
private String protocol;
private String macAddress;//MAC
private String dynChannelID;//2不知道什么
private String channelID;
private Date dateTime;
private String activePostCount;
private String eventType;
private String eventState;
private String eventDescription;
private String deviceID;
private String thermalURL;
}

2,写解析代码

import com.zhcz.wisdom.yw.eneity.EventNotificationAlert;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.client.RestTemplate; import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import java.io.StringReader; public class ToWyServer {
@Autowired
private RestTemplate restTemplate; public static boolean FireAlarm(String date){
if (StringUtils.isEmpty(date)) return false;
System.out.println(date);
Object map = ToWyServer.convertXmlStrToObject(EventNotificationAlert.class,date);
EventNotificationAlert eee = (EventNotificationAlert) map;
System.err.println(eee.toString());
return true;
} /**0
* 将String类型的xml转换成对象
*/
public static Object convertXmlStrToObject(Class<?> clazz, String xmlStr) {
Object xmlObject = null;
try {
JAXBContext context = JAXBContext.newInstance(clazz);
// 进行将Xml转成对象的核心接口
Unmarshaller unmarshal = context.createUnmarshaller();
StringReader sr = new StringReader(xmlStr);
xmlObject = unmarshal.unmarshal(sr);
} catch (Exception e) {
e.printStackTrace();
}
return xmlObject;
}

  

完成!

最新文章

  1. Photon服务器进阶&amp;一个新游戏的出产(二)
  2. java历史
  3. EditorGUILayout.EnumPopup 枚举弹出选择菜单
  4. 烂泥:LVM学习之逻辑卷、卷组及物理卷删除
  5. Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8整合例子(附完整的请假流程例子,jbpm基础,常见问题解决)
  6. 解决Ubuntu下vbox的(rc=-1908)
  7. hdu 2091 空心三角形
  8. Spring Boot 快速入门
  9. [转]T4模版引擎之生成数据库实体类
  10. Java Socket实战之一 单线程通信
  11. linux shell在while中用read从键盘输入
  12. 灵动标签的使用方法 ecms通过运行sql获取须要的记录
  13. vue中使用stompjs实现mqtt消息推送通知
  14. 获取cpu真实型号
  15. SpringBoot入门教程(一)详解intellij idea搭建SpringBoot
  16. NumPy的思考……
  17. RoR - Action Pack
  18. js总结:JavaScript入门
  19. MyEclipse10或者eclipse中配置开发Python的Pydev插件安装教程
  20. KNN分类算法补充

热门文章

  1. TCP和UDP协议之间的区别与原理
  2. 思科数据中心CCIE v3.0考试内容
  3. 自己写的java教程,免费分享
  4. vue3 门户网站搭建5-图标
  5. vue2中底层响应式数据实现
  6. 【ubuntu20 】主机,虚拟机ubuntu,开发板三者的ping通
  7. hive在执行简单的insert命令也会卡在kill command
  8. py正则与re模块
  9. Oracle重建索引
  10. 备份还原ESXi 中的虚拟机快照