Simple DOM question

Warren Hedley w.hedley at auckland.ac.nz
Thu Aug 19 04:41:32 BST 1999


"Nathaniel W. Turner" wrote:
> 
> I'm under the impression that one can't insert nodes into document A if they
> are part of document B, unless one removes the node from document B using
> the removeChild(Node) method.
> 
> That's how I do it using Perl (XML::DOM), but I would hope that the DOM API
> would be the same in Java.  That's the point, right?

Thanks for your help, but ...

I haven't been able to get that to work - that is, even though I remove a
node from its parent, I still cannot insert it into a document other than
the one in which it was created. Can you post a PERL example where this
works? And, more importantly, is it legal?

My Java test code is included below - note I'm using the dcxjp parser to read
it in, but otherwise using only DOM API calls.


--- BEGIN JAVA CODE ---

import com.datachannel.xml.om.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;

public class NodeInsertion
{

  public static void main(String argv[])
  {
    Document doc1=new Document(), doc2=new Document();
    Element rootElementDoc1, rootElementDoc2;
    Node childDoc1, childDoc2;

    try
    {
      doc1.loadXML("<?xml version=\"1.0\"?>" +
        "<rootElement1><childElement1 /></rootElement1>");
      doc2.loadXML("<?xml version=\"1.0\"?>" +
        "<rootElement2><childElement2 /></rootElement2>");

      rootElementDoc1 = doc1.getDocumentElement();
      rootElementDoc2 = doc2.getDocumentElement();

      childDoc1 = rootElementDoc1.getFirstChild();
      childDoc2 = rootElementDoc2.getFirstChild();

      rootElementDoc2.removeChild(childDoc2);
      rootElementDoc1.replaceChild(childDoc2, childDoc1);
    }
    catch (Exception e)
    {
      System.err.println("An error occurred : " + e.getMessage());
      e.printStackTrace();
    }
  }

} /* class NodeInsertion */

--- END JAVA CODE ---

-- 
Warren Hedley
Department of Engineering Science
Auckland University
New Zealand

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)





More information about the Xml-dev mailing list