XML与JAVABean的相互转换

2023-11-16

一、XML生成JAVABean

1. 将以下xml报文转为JavaBen实例:

<?xml version="1.0" encoding="UTF-8"?>

<!-- 接口一个报文对应一张入库预约单信息 -->

<ROOT>

<CODE>入库预约单号1</CODE>

<RELATEDCODE>采购订单1</RELATEDCODE>

<STATUS>状态</STATUS>

<SUPPLIERCODE>供应商代码</SUPPLIERCODE>

<SUPPLIERNAME>供应商名称</SUPPLIERNAME>

<LOCATIONCODE>库存地点</LOCATIONCODE>

<REVIEWTIME>PAC评审时间</REVIEWTIME>

<TOLOCATION>入库仓库 </TOLOCATION>

<STORAGEDATE>计划入库 时间</STORAGEDATE>

<CREATEDNAME>创建人</CREATEDNAME>

<CREATETIME>创建时间</CREATETIME>

<UPDATENAME>修改人</UPDATENAME>

<UPDATETIME>修改时间</UPDATETIME>

<ITEM>

<LINENUMBER>行项目号</LINENUMBER>

<ITEMCODE>物料编码</ITEMCODE>

<ITEMNAME>物料名称</ITEMNAME>

<QUANTITY>数量</QUANTITY>

<UNIT>单位</UNIT>

<WEIGHT>重量(KG)</WEIGHT>

<VOLUME>体积(MM3)</VOLUME>

</ITEM>

<ITEM>

<LINENUMBER>行项目号</LINENUMBER>

<ITEMCODE>物料编码</ITEMCODE>

<ITEMNAME>物料名称</ITEMNAME>

<QUANTITY>数量</QUANTITY>

<UNIT>单位</UNIT>

<WEIGHT>重量(KG)</WEIGHT>

<VOLUME>体积(MM3)</VOLUME>

</ITEM>

</ROOT>

2.  如图可见,ROOT为根节点,相应的是子节点,子节点ITEM作为根节点还有子节点,相应的JAVABean实体类如下:

@XmlRootElement(name="ROOT")  

public class ROOT {

//入库预约单号

    private String CODE;

    //采购订单

    private String RELATEDCODE;

    //状态

    private String STATUS;

    //供应商代码

    private String SUPPLIERCODE;

    //供应商名称

    private String SUPPLIERNAME;

    //库存地点

    private String LOCATIONCODE;

    //PAC评审时间

    private String REVIEWTIME;

    //入库仓库编码

    private String TOLOCATION;

    //入库时间

    private String STORAGEDATE;

    //创建人

    private String CREATEDNAME;

    //创建日期

    private String CREATETIME;

    //最后修改人

    private String UPDATENAME;

    //最后修改日期

    private String UPDATETIME;

 

    private List<ITEM> ITEM;

 

public ROOT() {

super();

}

 

public ROOT(String cODE, String rELATEDCODE, String sTATUS, String sUPPLIERCODE, String sUPPLIERNAME,

String lOCATIONCODE, String rEVIEWTIME, String tOLOCATION, String sTORAGEDATE, String cREATEDNAME,

String cREATETIME, String uPDATENAME, String uPDATETIME, List<ITEM> iTEM) {

super();

CODE = cODE;

RELATEDCODE = rELATEDCODE;

STATUS = sTATUS;

SUPPLIERCODE = sUPPLIERCODE;

SUPPLIERNAME = sUPPLIERNAME;

LOCATIONCODE = lOCATIONCODE;

REVIEWTIME = rEVIEWTIME;

TOLOCATION = tOLOCATION;

STORAGEDATE = sTORAGEDATE;

CREATEDNAME = cREATEDNAME;

CREATETIME = cREATETIME;

UPDATENAME = uPDATENAME;

UPDATETIME = uPDATETIME;

ITEM = iTEM;

}

        Get...

        Set...

3. 在实体类上增加注解@XmlRootElement(name="ROOT")解析时根节点会根据属性去生成相应的子节点,然后ITEM是多行需要定义为List,然后再定义单独的实体类Bean。如下

注意:实体类必须要有无参构造方法,不然在解析的时候会报错。

import javax.xml.bind.annotation.XmlRootElement;

 

@XmlRootElement  

public class ITEM {

 private String LINENUMBER;  

 private String ITEMCODE;

 private String ITEMNAME;

 private String QUANTITY;

 private String UNIT;

 private String WEIGHT;

 private String VOLUME;

 

 public ITEM() {

super();

 }

 

 public ITEM(String lINENUMBER, String iTEMCODE, String iTEMNAME, String qUANTITY, String uNIT, String wEIGHT,String vOLUME) {

super();

LINENUMBER = lINENUMBER;

ITEMCODE = iTEMCODE;

ITEMNAME = iTEMNAME;

QUANTITY = qUANTITY;

UNIT = uNIT;

WEIGHT = wEIGHT;

VOLUME = vOLUME;

 }

 

 

二、实体类转换为XML

ROOT root = new ROOT

(CODE,RELATEDCODE,STATUS,SUPPLIERCODE,SUPPLIERNAME,LOCATIONCODE,REVIEWTIME,TOLOCATION,STORAGEDATE,CREATEDNAME,CREATETIME,UPDATENAME,UPDATETIME, itemList);

//生成xml

         JAXBContext jc;

         StringWriter writer = new StringWriter();

         jc = JAXBContext.newInstance(ROOT.class);

          Marshaller ms = jc.createMarshaller();

         ms.marshal(root,System.out);  

         ms.marshal(root,writer);

         String xml = writer.getBuffer().toString();

 

三、dom4j解析xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- 说明:STATUS节点的值为:1或0,其中1表示接收成功,0表示接收失败 -->

<ROOT>

<STATUS>1</STATUS>

<MESSAGE></MESSAGE>

</ROOT>

解析:

            String result = port.warehousingOrder(xml);

            System.out.println("出参:"+result);

            //dom4j解析返回结果

            Document doc = DocumentHelper.parseText(result); // 将字符串转为XML

            Element rootElt = doc.getRootElement(); // 获取根节点

            Element element_status = rootElt.element("STATUS");

            String status = element_status.getStringValue();

            Element element_message = rootElt.element("MESSAGE");

            String message = element_message.getStringValue();

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XML与JAVABean的相互转换 的相关文章

  • java web 字体颜色循环变化 js实现

    setInterval 函数 设定颜色刷新的时间间隔 div h2 class title 天黑 h2 h4 请睁眼 h4 div js部分
  • Servlet——文件上传

    文件上传 文章目录 文件上传 1 Form表单形式实现 1 1 前端 1 2 后端 1 3 实现文件的上传然后保存到本地 2 Js Ajax实现 1 Form表单形式实现 1 1 前端 更改表单提交方式 form enctype multi
  • Jave Web 03 Cookie、Session

    1 会话 一个网站 如何证明你来过 客户端 服务端 服务端给客户端一个 信件 客户端下次访问服务端带上信件就可以了 cookie 服务器登记你来过了 下次你来的时候我来匹配你 seesion 2 保存会话的两种技术 1 cookie 客户端
  • 如何方便的去除返回Date时间戳后面的0(或者做其他设置)

    这是get请求后 返回个前端的时间戳 可以看到后面有三个的0 如何去除这0呢 但我们在java里面返回的类又是date 有两个方法 一 重新定义返回视图对象 将createTime 和 updateTime定义为long 然后在赋值的时候更
  • tomcat线程池配置

    以Tomcat8为例 配置方式一
  • javaWeb监听器

    JavaWeb监听器 三大组件 Servlet Listener Filter 监听器 接口 内容由我们来实现 它需要注册 例如注册在按钮上 监听器中的方法 会在特殊事件发生时调用 观察者 事件源 事件 监听器 javaweb中的监听器 事
  • Java web前端——JavaScript基础使用

    JavaScript概述 1 1 JavaScript简介 JavaScript LiveScript 一种解释性脚本语言 是一种动态类型 弱类型 基于原型继承的语言 内置支持类型 它的解释器被称为JavaScript引擎 为浏览器的一部分
  • 实例一 LINUX OS 简单制作 JAVA WEB + TOMCAT7.0 RPM 安装包

    1 安装rpmbuild 并配置环境 1 1 首先 你应该检查 rpmbuild 是否已经被安装在你的系统上 你将会利用这个工具从 spec 文件或 SRPM 组件创建 RPM 要检查它是否被安装了 请执行 rpmbuild showrc
  • JDBC连接数据库的几种方法与简单解析

    首先要知道jdbc 使用Java代码发送sql语句的技术就是jdbc技术 即jdbc是一个接口 用于不同的数据库 oracle mysql sqlserver 的操作 使用jdbc发送sql语句的前提 登录数据库服务器 连接数据库服务器 数
  • 自己实现图形验证码

    如果不想重复造轮子 参考上一篇文章 SpringBoot生成图形验证码 Muscleheng的博客 CSDN博客 这里不需要依赖开源组件包 完全自己实现图形验证码功能 两步完成 第一步 编写图形验证码工具 package com zhh d
  • Notepad++添加读取十六进制插件HexEditor

    下载地址 https github com chcg NPP HexEdit releases 安装方式 下载压缩包 例如 HexEditor 0 9 5 19 x64 zip 解压到本地目录 将文件夹更名为HexEditor 打开Note
  • java web——servlet+jsp实现前后台交互

    大学生涯终于结束 在公司学习了一段时间的java web方面的知识 结合自己之前的一些理解 想通过几篇文章来对我所接触到的java技术进行梳理与总结 也希望能给大家一些参考 由于作者水平有限 难免存在一些不足之处 希望能一起探讨 1 ser
  • 毕业设计 - 个人博客系统的设计与实现【源码+论文】

    文章目录 前言 一 项目设计 1 模块设计 博主功能用例 游客功能用例 2 实现效果 二 部分源码 项目源码 前言 今天学长向大家分享一个 Java web 毕业设计 项目 个人博客系统的设计与实现 一 项目设计 1 模块设计 博主功能用例
  • Spring属性注入方式

    1 Spring也表示一个开源框架 是为了解决企业程序应用开发的复杂性 框架的主要优势之一就是其分层架构 分层架构允许使用者选择使用哪一个组件 同时为J2EE应用程序开发提供集成的框架 Spring使用基本的bean来完成以前只能由EJB完
  • JDBC 连接池配置文件 解决了already close问题

    XML文件 DataSource配置
  • XML与JAVABean的相互转换

    一 XML生成JAVABean 1 将以下xml报文转为JavaBen实例
  • java.lang.NumberFormatException: null的解决方法

    1 首先附上我的代码 Integer reviewid Integer valueOf request getParameter reviewid System out println reviewid Integer articleid
  • 基于SSM框架的多文件上传Controller类编写

    前端代码
  • smbms 获取角色操作,角色管理实现

    为了我们职责统一 可以把角色的操作单独放在一个包中 和pojo中的对应 RoleDao 接口 package com Li dao role import com Li pojo Role import java sql Connectio
  • 基于Spring Boot 框架的试卷自动生成系统的设计与实现

    项目描述 临近学期结束 还是毕业设计 你还在做java程序网络编程 期末作业 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 你想解决的问题 今天给大家介绍一篇基于Spring Boot

随机推荐

  • 安装CP210xVCP遇到的问题

    在CE系统里面有USB设备虚拟串口的驱动 CP210xVCP就是这样 在写入注册表的配置信息里面 虚拟的串口默认为COM9 有一些设备上面 COM9是不行的 遇到这样的情况 修改为较小的编号 如COM6是可以的 还有一些设备 裁减掉了USB
  • Vue3、setup的使用

    Vue3 setup ref reactive toRef toRefs 1 setup的使用 1 1 简介 1 2 setup注意点 1 3 定义响应式数据 1 4 toRefs 1 5 setup中执行方法 1 5 1 方式一 1 5
  • Sqli-labs-master 1-4闯关游戏

    Less 1 首先打开到Less 1 根据提示Please input the ID as parameter with numeric value 请输入ID作为带数值的参数 这里我们用GET方法进行尝试 id 1 可以看到返回了用户名及
  • ceph pg inconsistent不一致,ceph pg repair无效

    更多ceph相关文章详见知乎ceph专栏 聊聊ceph ceph pg repair指令执行后 无效原因分析 ceph pg repair这一操作会先进行pg scrub 得到该PG中不一致的对象 然后再进行recovery pg scru
  • NVIDA CUDA architecture查询

    官网查询 https developer nvidia com cuda gpus 如下图所示 另外在CUDA SDK目录下有deviceQuery的示例程序 WIN10路径是C ProgramData NVIDIA Corporation
  • 若要运行此应用程序,您必须首先安装NET Framework 解决办法

    先把进入控制面版 删除原来的版本 安装 Net Framework失败 解决方案 第一步 如果是XP系统 这么做 1 开始 运行 输入cmd 回车 在打开的窗口中输入net stop WuAuServ 2 开始 运行 输入 windir 3
  • stm32f1一路互补PWM大功率DCDC降压方案

    stm32f1 ucc27211 tl431大功率dcdc电路 源码程序
  • 共探工业数智化,TVP河南工业互联网论坛将重磅召开!

    引言 随着数字经济与经济社会发展的深度融合 工业互联网日益成为数字化转型的关键驱动力量 云计算 大数据 AI 物联网等蓬勃发展的新技术将为制造业提供数字转型 智能升级 融合创新等服务 工业互联网也迎来了新一轮的历史发展机遇 在新技术的加持下
  • DataWhale-VCED项目学习-2Jina

    Jina Jina是多模态中存储数据以及处理数据的组件 它可以将非结构化数据 图像 文档 视频等 转化为向量数据 并结合Jina其它的相关组件设计 可以将这些向量数据利用起来 实现多模态相关应用 安装 安装 Jina 需要 Python3
  • git简单命令

    登录自己的账号与邮箱 git config global user name wei gir config global user email ww 进入一个文件夹中之后 git init 初始化仓库 生成 git文件 该文件夹称为工作树
  • 剑指offer-17 合并链表

    2个链表 本来都是从小到大的顺序排列的 现在要求合并 合并后依然从小到大 思路 先设定一个pointer指针 指向新链表的新节点 1 如果链表1为空 则新链表就是链表2 反之一样 2 创建一个指针pointer 在子链表都不为空时 比较两个
  • SQL注入——联合注入

    SQL注入原理 攻击者通过构造不同的SQL语句来实现对数据库的操作 SQL注入的本质 我们也能操作别人的数据库 数据库结构 库 就是一堆表组成的数据集合 表 类似Excel 有行和列组成的二维表 字段 表中的列称为字段 记录 表中的行称为记
  • $LSB_SUB_PARM_FILE

    LSB SUB PARM FILE是一个环境变量 用于指定包含作业提交所需参数的文件路径 这个文件通常由作业脚本生成 并在作业提交命令中使用该变量将此文件与作业一起提交给集群管理器 LSB SUB PARM FILE所生成的文件中包含了作业
  • BAM网络

    摘要 从混叠区域恢复纹理信息一直是单图像超分辨率 SISR 任务的主要挑战 这些区域通常淹没在噪波中 因此我们必须在抑制噪波的同时恢复纹理细节 为了解决这个问题 我们提出了一种平衡注意机制 BAM 它由Avgpool通道注意模块 ACAM
  • git使用手册,有这些就够了^_^

    日常工作中 有了这些git命令 解决你代码提交与合并上的痛点 再也不怕代码和别人冲突了 再也不用为合并代码 冲掉别人代码而头痛了 一 clone仓库中的代码 git clone svn addr git 其中 svn addr git为代码
  • 面试官:70% 的面试者挂在 JVM !

    无论什么级别的Java从业者 JVM都是进阶时必须迈过的坎 不管是工作还是面试中 JVM都是必考题 如果不懂JVM的话 薪酬会非常吃亏 近70 的面试者挂在JVM上了 掌握了JVM机制 就等于学会了深层次解决问题的方法 对于Java开发者而
  • ABP 框架官网学习资料

    ABP是 ASP NET Boilerplate Project ASP NET样板项目 的简称 新思想 新技术 新架构 更好更快的开发现代ASP NET应用程序 ASP NET Boilerplate是一个用最佳实践和流行技术开发现代WE
  • java数字字符串,非数字字符串前补零,后补零到指定位数

    java数字字符串 非数字字符串前补零 后补零到指定位数 一个Java有用的小工具类 import java text DecimalFormat import java util Arrays 位数不够补零 author hexionly
  • Matlab2021a安装教程

    目录 一 资源文件 二 安装 一 资源文件 名称 Matlab R2021a 大小 17 11GB 语言 简体中文 安装环境 Win10 64位下载链接 https pan baidu com s 1OIyhX8kpVfydlo aOnbT
  • XML与JAVABean的相互转换

    一 XML生成JAVABean 1 将以下xml报文转为JavaBen实例