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

Diskutiere Probleme bei der Formatierung beim Einfügen und löschen über DOM im XML und Co. Bereich.
N

navino

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:
Flown

Flown

Poste mal doch die XML hier und dann noch deine delete Methode, damit man das auch mal ausführen kann.
 
N

navino

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();

    }
 
Flown

Flown

Ich kann das leider nicht reproduzieren, der Output ist wie erwartet.
 
N

navino

Wenn du meinen Sourcecode verwendest ist nach dem Löschen eine Leerzeile drin
 
Thema: 

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

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben