Exception in thread "main" org.jdom.IllegalAddException: The element "xs:schema" 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 demo.UPSchemaReader.ParseUPSchemaFile(UPSchemaReader.java:145)
at demo.UPSchemaReader.main(UPSchemaReader.java:38)
使用JDOM,当你想把一个xml document 或者 Element 或者别的节点添加到另一个XML文档的时候,是不是遇到了这样的异常?
(Example code: someElement.addContent(someRootElement);)
原因是JDOM的add/remove方法会检查文档结构,不允许节点树里有循环,每个节点有且仅有一个根元素,并且要求命名空间一致。
那么如何使用JDOM合并XML文档呢?
知道之后其实很简单,Content类有个detach() 方法
(Example code: someElement.addContent(someRootElement.detach());)
---------------------
补充: 使用detach()要小心,会修改原来的对象,看上去使用clone()代替更好
---------------------