Java XML Insert a parent node -


i have following xml

<root>     <page>         <object ref="a"></object>         <object ref="b"></object>     </page> </root> 

i want convert

<root>     <page>         <objectgroup ref="a">             <object ref="a"/>         </objectgroup>         <objectgroup ref="b">             <object ref="b"/>         </objectgroup>     </page> </root> 

basically want introduce new parent node. used below way it's introducing more parents

 private static void loadroots(string xmlpath) {         document doc = migrate.inittreeopfromstring(xmlpath);         element rootelement = doc.getdocumentelement();         loadpage(rootelement);         migrate.finishtreeop(doc, "d:\\a.xml");     }      private static void loadpage(element root) {         nodelist pagenodes = root.getchildnodes();         (int j = 0; j < pagenodes.getlength(); j++) {             node pagenode = pagenodes.item(j);             if (pagenode.getnodetype() == node.element_node) {                 loadobject((element) pagenode);             }         }     }      private static void loadobject(element pagenode) {         nodelist objectnodes = pagenode.getchildnodes();         (int j = 0; j < objectnodes.getlength(); j++) {             node objectnode = objectnodes.item(j);             if (objectnode.getnodetype() == node.element_node) {                 element objgroup = pagenode.getownerdocument().createelement("objectgroup");                 string ref = objectnode.getattributes().getnameditem("ref").gettextcontent();                 objgroup.setattribute("ref", ref);                 pagenode.removechild(objectnode);                 objgroup.appendchild(objectnode);                 pagenode.appendchild(objgroup);             }         }     } 

but output is

<root>     <page>         <objectgroup ref="b">             <object ref="b"/>         </objectgroup>         <objectgroup ref="a">             <objectgroup ref="a">                 <objectgroup ref="a">                     <object ref="a"/>                 </objectgroup>             </objectgroup>         </objectgroup>     </page> </root> 

which not wanted. how solve this

it's mistake.i should have used insertbefore. did trick

private static void loadobject(element pagenode) {         nodelist objectnodes = pagenode.getchildnodes();         (int j = 0; j < objectnodes.getlength(); j++) {             node objectnode = objectnodes.item(j);             if (objectnode.getnodetype() == node.element_node) {                 element objgroup = pagenode.getownerdocument().createelement("objectgroup");                 string ref = objectnode.getattributes().getnameditem("ref").gettextcontent();                 objgroup.setattribute("ref", ref);                 pagenode.insertbefore(objgroup, objectnode);                 objgroup.appendchild(objectnode);             }         }     } 

Comments

Popular posts from this blog

Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project.Error occurred in starting fork -

windows - Debug iNetMgr.exe unhandle exception System.Management.Automation.CmdletInvocationException -

android - CoordinatorLayout, FAB and container layout conflict -