对xml文件的操作也可以借助hutoolXmlUtil.

1. xml格式

<root>
<deviceStatInfo onlineCount="64" offlineCount="2" errorCount="0"/>
<data>
<record id="0" name="5号楼10层流量计" status="预警2/正常1/异常3" time="2024-04-10 12:30"/>
<record id="1" name="5号楼13层流量计" status="预警2/正常1/异常3" time="2024-04-10 12:30"/>
<record id="2" name="5号楼16层流量计" status="预警2/正常1/异常3" time="2024-04-10 12:30"/>
<record id="3" name="5号楼19层流量计" status="预警2/正常1/异常3" time="2024-04-10 12:30"/>
</data>
</root>

2. 实体类

注意其中XmlElementWrapperXmlElement的位置

点击查看实体类
package com.tky.digital.twin.api.dto;

import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor; import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.Serializable;
import java.util.List; /**
* @author codor
* @date 2024/04/19 15:31
*/
@NoArgsConstructor
@AllArgsConstructor
@XmlRootElement(name = "root")
public class EquipmentWaterPipeStatusMessage implements Serializable { private static final long serialVersionUID = 1L; // @XmlAttribute
private DeviceStatInfoDto deviceStatInfo; // @XmlAttribute
private List<Record> data; @NoArgsConstructor
@AllArgsConstructor
public static class DeviceStatInfoDto implements Serializable { private int onlineCount;
private int offlineCount;
private int errorCount; @XmlAttribute
public int getOnlineCount() {
return onlineCount;
} public void setOnlineCount(int onlineCount) {
this.onlineCount = onlineCount;
} @XmlAttribute
public int getOfflineCount() {
return offlineCount;
} public void setOfflineCount(int offlineCount) {
this.offlineCount = offlineCount;
} @XmlAttribute
public int getErrorCount() {
return errorCount;
} public void setErrorCount(int errorCount) {
this.errorCount = errorCount;
}
} @NoArgsConstructor
@AllArgsConstructor
public static class Record implements Serializable { private String id;
private String name;
private String status;
private String time; @XmlAttribute
public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} @XmlAttribute
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} @XmlAttribute
public String getStatus() {
return status;
} public void setStatus(String status) {
this.status = status;
} @XmlAttribute
public String getTime() {
return time;
} public void setTime(String time) {
this.time = time;
}
} @XmlElement(name = "deviceStatInfo")
public DeviceStatInfoDto getDeviceStatInfo() {
return deviceStatInfo;
} public void setDeviceStatInfo(DeviceStatInfoDto deviceStatInfo) {
this.deviceStatInfo = deviceStatInfo;
} @XmlElementWrapper(name = "data")
@XmlElement(name = "record")
public List<Record> getData() {
return data;
} public void setData(List<Record> data) {
this.data = data;
}
}

3. 接口接收

@PostMapping(value = "/waterpipe", produces = {MediaType.APPLICATION_XML_VALUE})
public void waterpipe(@RequestBody EquipmentWaterPipeStatusMessage message) {
System.out.println("JSONUtil.toJsonStr(message) = " + JSONUtil.toJsonStr(message));
}

springboot接口接收xml的更多相关文章

  1. springboot接口 接收参数为实体对象跟MultipartFile对象报错。

    要把文件和普通数据类型分开接口传输,不可以兼容多个类型参数, 建议是传文件一个接口,返回url路径,再和普通数据一起提交,就是两次 企业上的做法都是这样,先用文件服务器保存文件,返回文件路径 http ...

  2. SpringBoot接口服务处理Whitelabel Error Page(转)

    To switch it off you can set server.error.whitelabel.enabled=false http://stackoverflow.com/question ...

  3. .net webapi 接收 xml 格式数据的三种情况

    webapi 接收 xml 的三种方法 前段时间接到一个任务写一个小接口,要接收java端返回过来的短信xml数据. 刚拿到项目,我的第一想法是对方会以什么形式发送xml格式的数据给我呢,设想三种情况 ...

  4. Springboot接口简单实现生成MySQL插入语句

    Springboot接口简单实现调用接口生成MySQL插入语句 在实际测试中,有这样一个需求场景,比如:在性能压力测试中,可能需要我们事先插入数据库中一些相关联的数据. 我们在实际测试中,遇到问题,需 ...

  5. SpringBoot接口服务处理Whitelabel Error Page

    转载请注明来源:http://blog.csdn.net/loongshawn/article/details/50915979 <SpringBoot接口服务处理Whitelabel Erro ...

  6. SpringBoot接口 - 如何生成接口文档之非侵入方式(通过注释生成)Smart-Doc?

    通过Swagger系列可以快速生成API文档,但是这种API文档生成是需要在接口上添加注解等,这表明这是一种侵入式方式: 那么有没有非侵入式方式呢, 比如通过注释生成文档? 本文主要介绍非侵入式的方式 ...

  7. tcp接收xml数据解析

    避免tcp接收xml数据时加上xml数据长度,根据xml数据特点来解析recv到的xml数据 int nPos1 = 0; int nPos2 = 0; int nTempPos = 0; int n ...

  8. 使用MyBatis的Generator自动创建实体类和dao的接口与xml

    在实际的项目中其实建立数据库和设计数据库的时候特别重要,而等数据库设计完成之后,根据数据库创建实体类的工作就特别麻烦和繁琐了,不仅很麻烦,而且很浪费时间,不做又不行,这次就找到了一个简单的方法可以让m ...

  9. 2、SpringBoot接口Http协议开发实战8节课(1-6)

    1.SpringBoot2.xHTTP请求配置讲解 简介:SpringBoot2.xHTTP请求注解讲解和简化注解配置技巧 1.@RestController and @RequestMapping是 ...

  10. Java文件上传:Restful接口接收上传文件,缓存在本地

    接口代码 import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.PostMapping; i ...

随机推荐

  1. MySQL事务ACID-隔离级别-锁介绍

    ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则 ...

  2. w3cschool-R语言 教程

    https://www.w3cschool.cn/r/ R语言教程 R语言是用于统计分析,图形表示和报告的编程语言和软件环境. R语言由Ross Ihaka和Robert Gentleman在新西兰奥 ...

  3. LeetCode 未验证规则

    1. for循环容易忘记break,很多提交不过,都是因为这个 2. 左右指针,思考起来比较复杂,但是以代码容易理解.code精简为主,不要在乎省下一两次运算时间 3. 左右指针,有时候以left & ...

  4. DeepSeek 不再卡顿,从此告别服务器繁忙,请稍后再试(建议收藏!)

    大家好,我是六哥. 由于DeepSeek真的太火了,也许你也跟我一样,常会遇到这样的情况: 真的让人抓狂,10条回复里常常有9条是"服务器blabla,请稍后重试",看到这话,就问 ...

  5. IDEA测试Flink程序

    一.导入项目,添加jar包 右键项目=>open module setting 选择Flink1.9的lib目录下flink-dist_2.11-1.9.2.jar包(对应运行版本) 保存即可. ...

  6. Luogu P11233 CSP-S2024 染色 题解 [ 蓝 ] [ 线性 dp ] [ 前缀和优化 ]

    染色:傻逼题. 赛时没切染色的都是唐氏!都是唐氏!都是唐氏!都是唐氏!都是唐氏!都是唐氏!都是唐氏! 包括我. 真的太傻逼了这题. 我今晚心血来潮一打这题,随便优化一下,就 AC 了. 怎么做到这么蠢 ...

  7. 什么是token?token是用来干嘛的?

    从事计算机行业的朋友都听说过token这么个东西,尤其是deepseek爆火后api(大家都知道什么意思吧),但是其他行业的人就很少了解到token,下面就给大家来详细介绍一下token是什么意思?t ...

  8. 让 LLM 来评判 | 奖励模型相关内容

    奖励模型相关内容 这是 让 LLM 来评判 系列文章的第五篇,敬请关注系列文章: 基础概念 选择 LLM 评估模型 设计你自己的评估 prompt 评估你的评估结果 奖励模型相关内容 技巧与提示 什么 ...

  9. RFID基础——ISO15693标签存储结构及访问控制命令说明

    ISO15693协议标准的高频RFID无源IC卡,具有高度防冲突与长距离运作等优点,主要应用与资产管理.图书馆管理.供应链管理.医疗领域.开发基于 ISO15693 的应用首先需要了解标签的存储结构以 ...

  10. 从零开始!Jupyter Notebook的安装详细教程

    本文将引导你完成从零开始安装Jupyter Notebook的过程.Jupyter Notebook是一个开源的Web应用程序,允许用户创建和共享包含实时代码.方程.可视化和叙述文本的文档.它广泛应用 ...