Probleme bei der Formatierung beim Einfügen und löschen über DOM

Entweder rückt er nicht ordentlich ein oder es bleiben Leerzeilen stehen

Zwischenablage02.jpg
Hier mein code:
Java:
String filePath = MainFrame.datenpfad + "\\kategorien.xml";
       File xmlFile = new File(filePath);
       DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
       DocumentBuilder dBuilder;
       try {
           dBuilder = dbFactory.newDocumentBuilder();
           Document doc = dBuilder.parse(xmlFile);
           doc.getDocumentElement().normalize();

           // delete element
           deleteElement(doc, aKategorie);

           // write the updated document to file or console
           doc.getDocumentElement().normalize();
           TransformerFactory transformerFactory = TransformerFactory.newInstance();
           Transformer transformer = transformerFactory.newTransformer();
           DOMSource source = new DOMSource(doc);
           // StreamResult result = new StreamResult(new File("employee_updated.xml"));
           StreamResult result = new StreamResult(new File(MainFrame.datenpfad + "\\kategorien.xml"));
           transformer.setOutputProperty(OutputKeys.INDENT, "yes");
           transformer.transform(source, result);
           System.out.println("XML file updated successfully");

       } catch (Exception e1) {
           e1.printStackTrace();
       }
 

Anhänge

Zuletzt bearbeitet von einem Moderator:
Poste mal doch die XML hier und dann noch deine delete Methode, damit man das auch mal ausführen kann.
 
Code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<kategorien>
  <kategorie>
    <id>1</id>
   <name>Backen</name>
  </kategorie>
  <kategorie>
    <id>2</id>
   <name>Kochen12</name>
  </kategorie>
</kategorien>
Code:
@Override
   public void deleteKategorie(Kategorie aKategorie) {
       Document doc = this.getDocument();
       try {

           doc.getDocumentElement().normalize();
           // delete element
           deleteElement(doc, aKategorie);

           this.writeDocument(doc);

       } catch (Exception e1) {
           e1.printStackTrace();
       }
   }




private static void deleteElement(Document doc, Kategorie aKategorie) {
        NodeList kategorie = doc.getElementsByTagName("kategorie");
        Element element = null;
        // loop for each employee
        for (int i = 0; i < kategorie.getLength(); i++) {

            element = (Element) kategorie.item(i);
            Node id = element.getElementsByTagName("id").item(0).getFirstChild();
            if (aKategorie.getId() == Integer.valueOf(id.getNodeValue())) {
                element.getParentNode().removeChild(element);
            }

        }
        doc.normalize();

    }
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben