xml字符串格式转实体类对象

工具类

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.io.StringReader;

/**
 * @author 花鼠大师
 * @description: TODO
 * @date 2023/2/22 16:29
 */
public class XmlToObjectUtil {
    /**
     * 将String类型的xml转换成对象
     */
    public static <T> T convertXmlStrToObject(String xmlStr, Class<T> clazz) {
        T message = null;
        try {
            JAXBContext jaxbContext = JAXBContext.newInstance(clazz);
            Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
            StringReader reader = new StringReader(xmlStr);
            message = (T) unmarshaller.unmarshal(reader);
        } catch (JAXBException e) {
            e.printStackTrace();
        }
        return message;
    }
}

测试实体类

package com.ruoyi.school.hikAlarm.dto;

import lombok.Data;

import javax.xml.bind.annotation.XmlRootElement;

/**
 * @author 花鼠大师
 * @description: 
 * @date 2023/2/22 16:31
 */
@XmlRootElement(name="FDDescription")
@Data
public class FDDescription {

    private String name;

    private String prompt;

    private String provinceName;

    private String cityName;
}

注意:实体类要加上@XmlRootElement(name=“”)注解,其中name=“”的值为xml标签的根标签名

测试类

  @Test
    public void alarmDataHandle() {
        String testStr = "<FDDescription>\n" +
                "<name>对比</name>\n" +
                "<prompt>谢谢</prompt>\n" +
                "<provinceName>河北</provinceName>\n" +
                "<cityName>石家庄</cityName>\n" +
                "</FDDescription>\n";
        FDDescription fdDescription = XmlToObjectUtil.convertXmlStrToObject(testStr, FDDescription.class);
        System.out.println(fdDescription.toString());
    }

结果

在这里插入图片描述

测试数据

<FDDescription>
	<name>对比</name>
	<prompt>谢谢</prompt>
	<provinceName>河北</provinceName>
	<cityName>石家庄</cityName>
</FDDescription>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值