i have the following in xml file
<data>
<group>
<groupname>a</groupname>
<groupuser>Saw</groupuser>
<groupuser>John</groupuser>
</group>
<group>
<groupname>b</groupname>
<groupuser>John</groupuser>
<groupuser>Saw</groupuser>
</group>
<group>
<groupname>c</groupname>
<groupuser>John</groupuser>
<groupuser>Saw</groupuser>
</group>
<user>
<username>John</username>
<password>1234</password>
</user>
</data>
I am trying to remove this element
<groupuser>John</groupuser>
This is my method:
public void removeUserGroup(String username) {
try {
File fXmlFile = new File(filePath);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("group");
for (int temp = 0; temp < nList.getLength(); temp++) {
Element group = (Element) nList.item(temp);
for (int temp2 = 0; temp2 < group.getElementsByTagName("groupuser").getLength(); temp2++) {
Element name = (Element) group.getChildNodes().item(temp2);
if (name.getTextContent().equals(username))
group.getParentNode().removeChild(group);
}
}
} catch (Exception ex) {
System.out.println("Database exception");
}
}
The code enters here and it doesn't throw exception
group.getParentNode().removeChild(group);
But nothing happens in the xml file!
I used this method from another question here i modified it to loop on children of <group>
but doesn't seem to work