`
java_frog
  • 浏览: 253011 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
今天在读取xml将里面内容拷贝到另一Document的时候出现下列问题: 

要将以下return下内容
<?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 下载 jdom 下载

    - **构建XML**:JDOM允许动态构建XML文档,通过Element、Attribute等类创建XML结构。 - **查询XML**:JDOM支持XPath表达式,可以方便地查找XML文档中的节点。 - **序列化XML**:将XML对象转换回XML字符串,以便输出...

    第三方解析工具

    在第三方XML解析工具中,Java有如JDOM、DOM4J等,Python有ElementTree,C#有System.Xml,这些都是常见的库,能够帮助开发者高效地处理XML数据。在iOS开发环境Xcode中,苹果提供了NSXMLParser作为内置的XML解析器,但...

    jdom开发工具包

    jdom1.1.1与jdom2.05最新开发工具包。...import org.jdom.Element; import org.jdom.input.SAXBuilder; jdom2.05使用方法: import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder;

    jdom-1.1.2&jdom帮助文档

    4. **Document(文档)**:整个 XML 文档由 Document 对象表示,它包含一个根 Element 和可能的处理指令和声明。 5. **Builder(构建器)**:JDOM 使用 Builder 类来解析 XML 文档并创建相应的 DOM 树。有 ...

    jdom源码+jdom.jar

    JDOM,全称为Java Document Object Model,是一种专为Java设计的XML处理库。它提供了一种高效、方便的方式来创建、构建、修改和读取XML文档。JDOM的主要优点在于其完全使用Java语言实现,因此与Java平台高度集成,...

    jdom-1.1.zip_java jdom_jdom-1.0.jar包_jdom-1.1_jdom-1.1.1.tar.gz

    2. **创建XML**:通过`Element`、`Attribute`等类可以创建XML结构,然后使用`Document`类来组合整个XML文档。 3. **遍历XML**:利用`Element`的子元素和属性集合,可以方便地遍历XML结构。 4. **修改XML**:可以对`...

    jdom-1.1.zip jdom-1.1.jar jdom.jar jdom库 jdom操作xml

    在JDOM中,XML文档被表示为一个树形结构,主要由三个基本元素组成:`Element`代表XML元素,`Attribute`表示元素的属性,而`Document`则封装了整个XML文档。通过这些类,你可以创建新的XML文档,或者读取并修改已有的...

    JDOM1.1(Jdom文档)

    3. **简单API**:JDOM提供了一套直观的API,允许开发者通过Element、Attribute、Namespace等对象直接操作XML结构。 4. **源码及API文档**:JDOM1.1不仅包含了jar包,还提供了CHM格式的API文档和源代码,方便开发者...

    使用JDOM解析XML文件

    JDOM通过Document对象表示整个XML文档,Element代表XML元素,Attribute表示元素属性,Text表示元素内的文本内容。这些类构成了JDOM的核心,它们帮助开发者构建和操作XML文档。 在解析XML文件时,JDOM提供了...

    jdom 读取XML 文件

    JDOM通过构建一棵DOM(Document Object Model)树来表示XML文档,这棵树是由节点构成的,包括元素(Element)、属性(Attribute)、文本(Text)等。使用JDOM,我们可以通过API操作这些节点来实现对XML的解析和操作...

    JDOM v1.0 API

    在JDOM中,`org.jdom.Document`类是整个XML文档的容器,它包含一个根元素和可选的处理指令和文档类型声明。 4. **Namespace(命名空间)**:XML命名空间用于避免标签名的冲突。JDOM提供了`org.jdom.Namespace`类来...

    JDOM帮助文档以及使用教程

    **三、JDOM的基本结构** JDOM的核心类包括`Element`(元素)、`Attribute`(属性)、`Document`(文档)等。`Document`代表整个XML文档,包含根元素和其他元素。`Element`表示XML文档中的一个节点,可以包含子元素...

    Jdom教程 Jdom教程.pdf

    ### JDOM教程知识点详解 #### 一、JDOM简介 JDOM(Java Document Object Model)是一种用于处理XML文档的Java库。与SAX和DOM API相比,JDOM提供了更为简洁和直观的方式来创建、读取、修改和输出XML文档。本教程主要...

    jdom-1.0,jdom解析xml

    **JDOM解析XML详解** XML(Extensible Markup Language)是一种用于标记数据的标准化语言,广泛应用于数据交换、配置文件和Web服务等领域。JDOM是Java领域中专门处理XML的一个库,它提供了一种高效且方便的方式来...

    jdom源代码,包含jdom.jar

    JDOM的核心类包括Element(元素)、Attribute(属性)、Document(文档)和Namespace(命名空间)。Element代表XML文档中的一个节点,可以包含其他元素、文本和属性;Attribute用于表示元素的属性;Document是整个...

    JDOM使用详解及实例

    - `Document`类是JDOM的核心,代表整个XML文档。你可以通过创建一个新的Element对象作为根元素来初始化一个Document,然后设置其文本内容,如下所示: ```java Element root = new Element("GREETING"); Document...

    jdom1.0.jar

    JDOM 1.0版本的核心类包括Element、Attribute、Document等,它们分别代表了XML文档的元素、属性和整个文档结构。通过这些类,你可以方便地创建XML文档、查找元素、添加或删除属性,以及进行复杂的XPath查询。例如,...

    jdom的两种版本jar包集合

    **JDOM概述** JDOM(Java Document Object Model)是一个用于处理XML文档的Java库,它提供了在内存中构建和操作XML文档的API。JDOM的主要目标是为Java开发者提供一个高性能、灵活且易于使用的XML处理工具,使得XML...

    jdom.rar包

    然而,与DOM(Document Object Model)相比,JDOM的内存消耗较大,因为它是整个XML文档加载到内存中。此外,对于大型XML文档,StAX(Streaming API for XML)或Woodstox等拉式解析器可能更为合适,因为它们按需读取...

    JDOMAPI(html)

    **三、JDOM的基本操作** 1. **创建XML文档**: 使用`DocumentBuilder`创建一个新的`Document`实例,然后添加元素、属性等。 2. **添加元素**: `Element`类提供了`addContent(Content)`方法来添加子元素,或者使用`...

Global site tag (gtag.js) - Google Analytics