最近遇到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;
}

  

完成!

JAVA XML转对象的更多相关文章

  1. java 使用xom对象数据序列化为xml、反序列化、Preferences相关操作小案例

    package org.rui.io.xml; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import ...

  2. 【Java】Java XML 技术专题

    XML 基础教程 XML 和 Java 技术 Java XML文档模型 JAXP(Java API for XML Parsing) StAX(Streaming API for XML) XJ(XM ...

  3. Java XML解析器

    使用Apache Xerces解析XML文档 一.技术概述 在用Java解析XML时候,一般都使用现成XML解析器来完成,自己编码解析是一件很棘手的问题,对程序员要求很高,一般也没有专业厂商或者开源组 ...

  4. XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax

    本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...

  5. Java操作Sqoop对象

    Windows下使用Eclipse工具操作Sqoop1.4.6对象 Sqoop是用来在关系型数据库与Hadoop之间进行数据的导入导出,Windows下使用Eclipse工具操作时,需要先搭建好Had ...

  6. Java xml 操作(Dom4J修改xml   + xPath技术  + SAX解析 + XML约束)

    1 XML基础 1)XML的作用 1.1 作为软件配置文件 1.2 作为小型的"数据库" 2)XML语法(由w3c组织规定的) 标签: 标签名不能以数字开头,中间不能有空格,区分大 ...

  7. Android -- 创建XML文件对象及其序列化, pull解析XML文件

    1. 创建XML文件对象及其序列化 示例代码:(模拟以xml格式备份短信到SD卡) SmsInfo.java, bean对象 /** * 短信的业务bean * @author Administrat ...

  8. JAXB解析XML为对象

    JAXB支持注解将XML转化为对象,具体看一个简单的例子: <?xml version="1.0" encoding="utf-8"?> <A ...

  9. Java&Xml教程(六)使用JDOM解析XML文件

    JDOM 提供了非常优秀的Java XML API来更方便的读取.修改.生成XML文档.JDOM还提供了包装类供用户从SAX.DOM.STAX事件解析.STAX流解析中选择具体的实现. 在本教程中,我 ...

  10. Java&Xml教程(一)简介

    XML是广泛用于数据传输和存储的技术.Java语言提供个各种各样的API来解析XML,例如DOM.SAX.StAX.JAXB.也还有一些其他的API用于解析XML,例如JDOM.本教程的目的是探索使用 ...

随机推荐

  1. 「SOL」网络流flow (模拟赛)

    题面 给定一张分层有向图,有 \(n\) 层,每层有 \(m\) 个点.只有从第 \(i\) 层的点连向第 \(i + 1\) 层的点的连边. 记 \(A(i,j)\) 表示从第 \(i\) 层的某些 ...

  2. Hive基本概念

    Hive Hive的相关概念 Hive的架构图 用户接口:包括 CLI.JDBC/ODBC.WebGUI.其中,CLI(command line interface)为shell命令行:Hive中的T ...

  3. SQL开窗函数用法

    开窗函数分类: 根据使用的目的,开窗函数可以分为两类:聚合开窗函数和排序开窗函数. 下面主要解析四种常用的排序开窗函数: 1.ROW_NUMBER() OVER () : 对相等的值不进行区分,序号连 ...

  4. vue项目埋点实践,使用img发送埋点数据

    埋点数据种类:1.按钮点击2.页面切换(具体数据内容根据实际需求再定义)埋点数据交互:采用img的默认下载功能,发送get请求,带上埋点数据(此处后期需要加上加密)发送频率:1.固定时间2.固定数据量 ...

  5. Nginx/1.13.3热升级1.21.6

    背景: 根据其服务器响应标头,安装的 nginx 版本为低于 1.16.1 的 1.9.5,或是低于 1.17.3 的 1.17.x.因此,它受到多种拒绝服务漏洞的影响: - HTTP/2 协议堆栈中 ...

  6. Back Propagation - Python实现

    算法特征①. 统一看待线性运算与非线性运算; ②. 确定求导变量loss影响链路; ③. loss影响链路梯度逐级反向传播. 算法推导Part Ⅰ以如下简单正向传播链为例, 引入线性运算与非线性运算符 ...

  7. ssh远程执行命令无法使用awk的问题

    ssh执行远程命令,当使用到awk的时候总是报错,而sed和grep都没有问题 awk不支持远程执行.最近经过测试找到了解决此问题的方法. 举例:ssh 目标IP " awk '{print ...

  8. Qt 按键添加图标

    1.开发环境:Qt5.12.2,QtCreate4.8.2 2.直接上代码 /* 按键上背景 */ QPixmap pixmap(":/Resourses/images/easyicon_n ...

  9. ansible笔记第三章(Ansible--tasks任务控制)

    (1)when判断语句 实践案例一.根据不同操作系统,安装相同的软件包 [root@m01 project1]# cat tasks_1.yml - hosts: oldboy tasks: - na ...

  10. 用有限差分估计(Finite Difference Estimate)解决地理坐标与平面像素坐标转换过程的误差造成风场粒子向量失真问题

    下载NCEP的气象场grib2数据,风场是二维的向量,包含u和v两个分量.这个用经纬度投影到像素坐标会产生误差,直接绘制效果不太对:(   通过插值计算得到风场粒子的预测数据wind = interp ...