HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted
Dear all members
I am getting this error when i try to insert a new element(record) into my existing xml file.
XML File:
Quote:
<Users>
<User ID="1">
<Username>N1</Username>
<Role>R1</Role>
</User>
<User ID="2">
<Username>N2</Username>
<Role>R2</Role>
</User>
</Users>
Java Code:
Quote:
Document xmlDomObject = parseXMLDocument();
Node rootNode = xmlDomObject.getDocumentElement();
Element userElement = xmlDomObject.createElementNS(null, "USER");
userElement.setAttribute("ID",newUserRecordID);
userElement.setAttribute("Name", userName);
// Create Child element for User Name.
Element userNameElement = xmlDomObject
.createElementNS(null, "UserName");
Node userNameElementNode = xmlDomObject.createTextNode(userName);
userNameElement.appendChild(userNameElementNode);
// Create Child element for User Name.
Element roleElement = xmlDomObject.createElementNS(null, "Role");
Node roleElementNode = xmlDomObject.createTextNode(Role);
roleElement.appendChild(roleElementNode);
userElement.appendChild(userNameElement);
userElement.appendChild(roleElement);
DocumentFragment documentFragment = xmlDomObject.createDocumentFragment();
documentFragment.appendChild(userElement);
rootNode.insertBefore(documentFragment,rootNode.ge tFirstChild().getNextSibling());//or use this -->rootNode.getChildNodes().item(1));
xmlDomObject.appendChild(rootNode);//HERE I AM GETTING THE BELOW ERROR
// Start Serialization Process using Serializable interface method - writeObject.
serialize(xmlDomObject);
Error:
Quote:
Users
org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted.
at org.apache.xerces.dom.CoreDocumentImpl.insertBefor e(Unknown Source)
at org.apache.xerces.dom.NodeImpl.appendChild(Unknown Source)
at com.javafiles.AddNewUserToXML.addNewUser(AddNewUse rToXML.java:76)
at com.handler.NewUserHandler.doPost(NewUserHandler.j ava:215)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:803)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11 ConnectionHandler.processConnection(Http11BaseProt ocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.process Socket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThr ead.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)
I want to add new user each time when a new user registered with us using servlet.
Through servlet i am trying to add new user profile in xml file located in user home at client side.
Please help me out of this problem..........
waiting for your reply.........:(