Kann man neue Knoten löschen?

Status
Nicht offen für weitere Antworten.

DocMcFly

Bekanntes Mitglied
Hallo,

folgende Aufgabe habe ich zulösen(keine Sorge keine Hausaufgabe ;-). In meiner XML-Datei stehen mehrer Konfigurationen und eine Vorlage-Konfiguration.
Die Vorlage soll beliebig dupliziert und die Konfigurationen aus der manipulierten Vorlage sollen gelöscht werden können. Die XML-Datei sieht ca. so aus...

Code:
...
<einstellungen>
  <konf>....</konf>
  <konf>....</konf>
  <konf>....</konf>
  <vorlage>....</vorlage>
</einstellungen>
...

Zuerst wollte ich die Vorlage duplizieren (clonen) und umbennen - Umbennen ging nicht :confused:

Also hab ich einen neuen <konf>-Knoten erzeugt und die Childs von <vorlage> kopiert. Das funktioniert. So weit so gut.

Das Löschen der geparste <konf> - Knoten ist auch kein Problem.

Jetzt kommt meine Frage und Problem - aus irgendeinem Grund kann ich neu hinzugefügten Knoten nicht löschen.

Ich verwende "Oracle JDeveloper". Der zeigt mir im Debugger-Mode an, dass in den neuen Knoten kein "fNodeIndex" haben - aber die geparsten Knoten schon.

Mein Vermutung ist nun: bei <einstellung>.remove(<neueKonf>) - sucht der <einstellung>-Knoten nach dem <neueKonf> Knoten mittels des "fNodeIndex" . Diesen <neueKonf>-Knoten kann er aber nicht finden, weil dieser keinen "fNodeIndex" hat.

Liege ich damit richtig? Wenn ja - wie kann ich dem Knoten einen solchen Index geben?
Warum kann ich keine Knoten umbennen? (fände ich sehr blöd, wenn das nicht geht)

Was macht der Parser anders, wenn er den DOM-Baum aufbaut? :confused:
Bitte nicht vorschlagen: DOM-Baum abspeichern und neuladen. Das Beispiel oben ist sehr klein. Der reale Baum kann aber eine riesige Größe erreichen und es wäre doof - wenn ich den neu parsen lassen müsste - weil das viel zu langsam wäre.

Würde mich über Anworten und Tipps freuen...

Clemens

P.S.Hier noch die Imports - falls es an meinen Packeten liegt:
Code:
import javax.xml.parsers.*;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.EntityReference;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import org.xml.sax.SAXException;
 

Bleiglanz

Gesperrter Benutzer
was genau geht nicht? welche Fehlermeldung?

removeChild(Node n)???

evtl. mal DocumentFragment anschauen
 

DocMcFly

Bekanntes Mitglied
ja. remove(Node) geht nicht, bei neu erzeugten Knoten bekomme ich:

Code:
org.w3c.dom.DOMException: NOT_FOUND_ERR: An attempt is made to reference a node in a context where it does not exist.
	at org.apache.xerces.dom.ParentNode.internalRemoveChild(Unknown Source)
	at org.apache.xerces.dom.ParentNode.removeChild(Unknown Source)

bei geparsten Knoten läuft alles prima. :autsch:

10 min.... später...

- danke ich hab nein "this." vergessen - der Name war bei remove falsch... manchmal hilft wirklich nur zehnmal genaues hinsehen....

Danke

Clemens
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M neue Knoten erstellen ? XML & JSON 6
S Neue Inhalte in XML-Datei einfügen XML & JSON 0
Z XML auslesen, Elemente daraus entfernen und als neue XML zurückgeben XML & JSON 2
N neue XML-Datei erstellen mit vorhandener Struktur XML & JSON 18
T [JDOM] XML File, neue Daten hinzufügen XML & JSON 5
I XPath Namensräume und auslesen einzelner Knoten XML & JSON 3
B XML und do while Schleife, Knoten falsch XML & JSON 5
K XML Tabs als Knoten gezählt XML & JSON 3
sylo Knoten mittels selbstgebasteltem TreePath öffnen XML & JSON 2
B im DOM anzahl der Knoten in tiefe 3 zählen XML & JSON 2
E XML Knoten mit rekursiver Methode auslesen XML & JSON 3
console xml knoten mit attribut löschen XML & JSON 3
D Anzahl der Knoten in einer XML XML & JSON 6
L SAXReader , auslesen bis zum bestimmten knoten! XML & JSON 3
C suche bestimmten Knoten mit bestimmten attribut XML & JSON 8
R Knoten einfügen und sofort CDATA-Sektion darunter XML & JSON 7
P Knoten-Attribute einer xsd-Datei in einem JTree auslesen XML & JSON 18
Z DOM: Attribute in Knoten schreiben XML & JSON 2
Z Erzeugung einer Referenz von Knoten in JTree auf DOMTree XML & JSON 3
N Probleme bei der Formatierung beim Einfügen und löschen über DOM XML & JSON 7
D XML Eintrag löschen XML & JSON 5
W XML-Element komplett löschen XML & JSON 5
E Regex, erste ziffern löschen XML & JSON 4
B Problem beim löschen von ChildNodes aus einem XML-DOM XML & JSON 3
H Nach einem Attribut suchen und dann löschen XML & JSON 3
clemson element mit id in jdom löschen XML & JSON 2
T Elemente aus XML-File löschen (JDom) XML & JSON 9

Ähnliche Java Themen

Neue Themen


Oben