今天在读取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()));
}
分享到:
相关推荐
- **构建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解析器,但...
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;
4. **Document(文档)**:整个 XML 文档由 Document 对象表示,它包含一个根 Element 和可能的处理指令和声明。 5. **Builder(构建器)**:JDOM 使用 Builder 类来解析 XML 文档并创建相应的 DOM 树。有 ...
JDOM,全称为Java Document Object Model,是一种专为Java设计的XML处理库。它提供了一种高效、方便的方式来创建、构建、修改和读取XML文档。JDOM的主要优点在于其完全使用Java语言实现,因此与Java平台高度集成,...
2. **创建XML**:通过`Element`、`Attribute`等类可以创建XML结构,然后使用`Document`类来组合整个XML文档。 3. **遍历XML**:利用`Element`的子元素和属性集合,可以方便地遍历XML结构。 4. **修改XML**:可以对`...
在JDOM中,XML文档被表示为一个树形结构,主要由三个基本元素组成:`Element`代表XML元素,`Attribute`表示元素的属性,而`Document`则封装了整个XML文档。通过这些类,你可以创建新的XML文档,或者读取并修改已有的...
3. **简单API**:JDOM提供了一套直观的API,允许开发者通过Element、Attribute、Namespace等对象直接操作XML结构。 4. **源码及API文档**:JDOM1.1不仅包含了jar包,还提供了CHM格式的API文档和源代码,方便开发者...
JDOM通过Document对象表示整个XML文档,Element代表XML元素,Attribute表示元素属性,Text表示元素内的文本内容。这些类构成了JDOM的核心,它们帮助开发者构建和操作XML文档。 在解析XML文件时,JDOM提供了...
JDOM通过构建一棵DOM(Document Object Model)树来表示XML文档,这棵树是由节点构成的,包括元素(Element)、属性(Attribute)、文本(Text)等。使用JDOM,我们可以通过API操作这些节点来实现对XML的解析和操作...
在JDOM中,`org.jdom.Document`类是整个XML文档的容器,它包含一个根元素和可选的处理指令和文档类型声明。 4. **Namespace(命名空间)**:XML命名空间用于避免标签名的冲突。JDOM提供了`org.jdom.Namespace`类来...
**三、JDOM的基本结构** JDOM的核心类包括`Element`(元素)、`Attribute`(属性)、`Document`(文档)等。`Document`代表整个XML文档,包含根元素和其他元素。`Element`表示XML文档中的一个节点,可以包含子元素...
### JDOM教程知识点详解 #### 一、JDOM简介 JDOM(Java Document Object Model)是一种用于处理XML文档的Java库。与SAX和DOM API相比,JDOM提供了更为简洁和直观的方式来创建、读取、修改和输出XML文档。本教程主要...
**JDOM解析XML详解** XML(Extensible Markup Language)是一种用于标记数据的标准化语言,广泛应用于数据交换、配置文件和Web服务等领域。JDOM是Java领域中专门处理XML的一个库,它提供了一种高效且方便的方式来...
JDOM的核心类包括Element(元素)、Attribute(属性)、Document(文档)和Namespace(命名空间)。Element代表XML文档中的一个节点,可以包含其他元素、文本和属性;Attribute用于表示元素的属性;Document是整个...
- `Document`类是JDOM的核心,代表整个XML文档。你可以通过创建一个新的Element对象作为根元素来初始化一个Document,然后设置其文本内容,如下所示: ```java Element root = new Element("GREETING"); Document...
JDOM 1.0版本的核心类包括Element、Attribute、Document等,它们分别代表了XML文档的元素、属性和整个文档结构。通过这些类,你可以方便地创建XML文档、查找元素、添加或删除属性,以及进行复杂的XPath查询。例如,...
**JDOM概述** JDOM(Java Document Object Model)是一个用于处理XML文档的Java库,它提供了在内存中构建和操作XML文档的API。JDOM的主要目标是为Java开发者提供一个高性能、灵活且易于使用的XML处理工具,使得XML...
然而,与DOM(Document Object Model)相比,JDOM的内存消耗较大,因为它是整个XML文档加载到内存中。此外,对于大型XML文档,StAX(Streaming API for XML)或Woodstox等拉式解析器可能更为合适,因为它们按需读取...
**三、JDOM的基本操作** 1. **创建XML文档**: 使用`DocumentBuilder`创建一个新的`Document`实例,然后添加元素、属性等。 2. **添加元素**: `Element`类提供了`addContent(Content)`方法来添加子元素,或者使用`...