Thanks everybody. 

This method doesn't work. I think because imporNode() can't import a
document node. however, I tried another way,

        Element doc2Root = sourceDoc.getDocumentElement();
        Element docRoot = doc.getDocumentElement();
                
        for(Node n = sourceRoot; n != null; n=n.getNextSibling()) {
                docRoot.appendChild(doc.importNode(n, true));
        }

which is based on Joe's another email in 2000, it works. There might be
other better way. I will try more and get back later.

Thanks again.

Stephen

On Fri, 7 Nov 2003, Maksym Kovalenko wrote:

> Use
> Node doc1OwnedNode = doc.importNode(doc2.getDocumentElement());
> doc.appendChild(doc1OwnedNode);
> 
> But read DOM specs first that Joseph Kesselman pointed out.
> 
> Lingzhi Zhang wrote:
> 
> >Hi,
> >
> >I am experimenting how to append a piece of xml into an existing xml using
> >DOM. My code is like,
> >
> >     DocumentBuilder parser = factory.newDocumentBuilder();  
> >     InputSource in = new InputSource(xmlFile);
> >     Document doc = parser.parse(in);
> >
> >I got anothe Document doc2 in the same way. The I tried
> >
> >1.   doc.appendChild(doc2);
> >2.   doc.appendChild(doc2.getDocumentElement());
> >3.   doc.getDocumentElement().appendChild(doc2.getDocumentElement());
> >4.   aNode.appendChild(doc2);        //aNode is a node in doc
> >
> >But none of the above worked, the code always throws the exception:
> >"org.w3c.dom.DOMException: WRONG_DOCUMENT_ERR: A node is used in a
> >different document than the one that created it."
> >
> >In the api it says,
> >"WRONG_DOCUMENT_ERR: Raised if newChild was created from a different
> >document than the one that created this node. "
> >
> >However, I still don't understand wha this exactly means. What is wrong
> >with the appending in my code? 
> >
> >Thanks.
> >
> >Stephen
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >  
> >
> 
> -- 
> ------------------------------------------------------------------------
> 
> Maksym Kovalenko
> Software Engineer
> Marketswitch Corporation
> http://www.marketswitch.com <http://www.marketswitch.com/>
> 108 Powers Court, Suite 225
> Dulles, VA 20166
> Phone: +1 (703) 444-6750 ext. 302
> Fax: +1 (703) 444-6812
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to