title: Wrong document error while appending a node in xml
body: <pre><code>public static Node createNodeFromXMLString(String xml) throws SAXException,
          IOException {
      return builder.parse(new ByteArrayInputStream(xml.getBytes()))
              .getDocumentElement();
  }
  
  
  public static void main(String args[]){
     Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("server.xml");
     XPath xpath = XPathFactory.newInstance().newXPath();
     Node element = (Node)xpath.evaluate("/Server/Service/Connector[2]",document,XPathConstants.NODE);
     String newNode = nodeToString(element).replace("port=\"8443\"", "port=\"8453\"");
     Node parent = element.getParentNode();
     Node node = createNodeFromXMLString(newNode);
     parent.removeChild(element);
     document.importNode(node,true);
     parent.appendChild(node);       
  }
  </code></pre>
  
  <p>It throws Exception in thread "main" org.w3c.dom.DOMException: WRONG_DOCUMENT_ERR: A node is used in a different document than the one that created it.
      at org.apache.xerces.dom.ParentNode.internalInsertBefore(Unknown Source)
      at org.apache.xerces.dom.ParentNode.insertBefore(Unknown Source)
      at org.apache.xerces.dom.NodeImpl.appendChild(Unknown Source)</p>