jdom整个拷贝第三方传入的Element

2024-01-11 10:48

本文主要是介绍jdom整个拷贝第三方传入的Element,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[/code]今天在读取xml将里面内容拷贝到另一Document的时候出现下列问题: 
要将以下return下内容
[code="java"]
<?xml version='1.0' encoding='GB18030'?>
<RETURN>
<RetCode>响应码</RetCode>
<RetMsg>响应码说明</RetMsg>
<TrDate>处理日期</TrDate>
<BatNo>批次号</BatNo>
<Stat>处理状态</Stat>
<TrStat>交易状态</TrStat>
<BatStatDes>批次状态说明</BatStatDes>
</RETURN>

拷贝到以下body中
<?xml version="1.0" encoding='GB18030'?>
<TranData>
<Head />
<Body>
<RetCode>响应码</RetCode>
<RetMsg>响应码说明</RetMsg>
<TrDate>处理日期</TrDate>
<BatNo>批次号</BatNo>
<Stat>处理状态</Stat>
<TrStat>交易状态</TrStat>
<BatStatDes>批次状态说明</BatStatDes>
</Body>
</TranData>

用了

Element mOutBodyEle = new Element("Body");
mOutBodyEle.addContent(reDoc.getRootElement());

但是报了如下错误

Exception in thread "main" org.jdom.IllegalAddException: The element "RETURN" could not be added as the root of the document: The Content already has an existing parent document
at org.jdom.ContentList.add(ContentList.java:205)
at org.jdom.ContentList.add(ContentList.java:131)
at java.util.AbstractList.add(AbstractList.java:89)
at org.jdom.Element.addContent(Element.java:811)
at com.guohr.net.CallWebsvcByFinance.batchStatusQuery(CallWebsvcByFinance.java:71)
at com.guohr.net.CallWebsvcByFinance.main(CallWebsvcByFinance.java:131)

后来网上有人说用detach()方法,但是我用了之后拷贝的个数丢失了,后来采用了clone()方法后解决了这个问题,看来人家设计的时候都考虑好了,真的很强大啊
mOutBodyEle.addContent(reDoc.getRootElement().detach());
for (int i = 0; i < reDoc.getRootElement().getContentSize(); i++) {
mOutBodyEle.addContent((Element)(reDoc.getRootElement().getContent(i).clone()));
}

这篇关于jdom整个拷贝第三方传入的Element的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/594127

相关文章

如何更优雅地对接第三方API

如何更优雅地对接第三方API 本文所有示例完整代码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/third 我们在日常开发过程中,有不少场景会对接第三方的API,例如第三方账号登录,第三方服务等等。第三方服务会提供API或者SDK,我依稀记得早些年Maven还没那么广泛使用,通常要对接第三方

SW - 引入第三方dwg图纸后,修改坐标原点

文章目录 SW - 引入第三方dwg图纸后,修改坐标原点概述笔记设置图纸新原点END SW - 引入第三方dwg图纸后,修改坐标原点 概述 在solidworks中引入第三方的dwg格式图纸后,坐标原点大概率都不合适。 全图自动缩放后,引入的图纸离默认的原点位置差很多。 需要自己重新设置原点位置,才能自动缩放后,在工作区中间显示引入的图纸。 笔记 将dwg图纸拖到SW中

mybatis if test 之 0当做参数传入出问题

首先前端传入了参数 if(StringUtils.isNotBlank(status)){requestParam.setProperty("status", Integer.parseInt(status));}List<SuperPojo> applicationList = groupDao.getApplicationListByReviewStatusAndMember(req

Linux 使用rsync拷贝文件

显示进度条 rsync 可以显示进度条,您可以使用 --progress 或 -P 选项来显示每个文件的传输进度和已完成文件的统计信息。 显示进度条的常用选项: --progress 选项 使用 --progress 显示每个文件的传输进度信息:rsync -av --progress /src/ /dest/ -a:归档模式,表示递归拷贝并保持文件权限、时间戳等。-v:详细模式,显示更

python基础语法十一-赋值、浅拷贝、深拷贝

书接上回: python基础语法一-基本数据类型 python基础语法二-多维数据类型 python基础语法三-类 python基础语法四-数据可视化 python基础语法五-函数 python基础语法六-正则匹配 python基础语法七-openpyxl操作Excel python基础语法八-异常 python基础语法九-多进程和多线程 python基础语法十-文件和目录操作

插件maven-search:Maven导入依赖时,使用插件maven-search拷贝需要的依赖的GAV

然后粘贴: <dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId>    <version>8.0.26</version> </dependency>

JS手写实现深拷贝

手写深拷贝 一、通过JSON.stringify二、函数库lodash三、递归实现深拷贝基础递归升级版递归---解决环引用爆栈问题最终版递归---解决其余类型拷贝结果 一、通过JSON.stringify JSON.parse(JSON.stringify(obj))是比较常用的深拷贝方法之一 原理:利用JSON.stringify 将JavaScript对象序列化成为JSO

Node.js和vue3实现GitHub OAuth第三方登录

Node.js和vue3实现GitHub OAuth第三方登录 前言 第三方登入太常见了,微信,微博,QQ…总有一个你用过。 在开发中,我们希望用户可以通过GitHub账号登录我们的网站,这样用户就不需要注册账号,直接通过GitHub账号登录即可。 效果演示 注册配置 GitHub 应用 1.首先登录你的GitHub然后点击右上角的头像->点击进入Settings页面 2.在

HDD 顺序和随机文件拷贝和存储优化策略

对于机械硬盘(HDD),顺序拷贝和随机拷贝涉及到磁头的移动方式和数据的读取/写入模式。理解这些概念对于优化硬盘性能和管理文件操作非常重要。 1. 顺序拷贝 定义: 顺序拷贝指的是数据从硬盘的一个位置到另一个位置按顺序连续读取和写入。这意味着数据在硬盘上的位置是线性的,没有跳跃或回溯。 特点: 磁头移动最小化:由于数据是连续的,磁头在读取或写入数据时只需要在磁盘的一个方向上移动,减少了寻道时

leetcode#496. Next Greater Element I

题目 You are given two arrays (without duplicates) nums1 and nums2 where nums1’s elements are subset of nums2. Find all the next greater numbers for nums1’s elements in the corresponding places of nums