xml Element ersetzen

freehawk

Mitglied
Hallo zusammen,
ich tappe gerade irgendwie ein wenig im Nebel. Ich habe eine große XML Stuktur in einen JDOM Document und eine zweite kleinere Stuktur.
Nun möchte ich die zweite XML in die große an der richtigen Stelle einfügen. Dazu suche ich nach dem Element wo die XML ersetzt werden soll und dann möchte ich das Element mit seinen Unterelement durch ein anderes Document ersetzten.
Ich finde irgendwie die richtigen Methoden nich um das zu tun.

Code:
private Element findTag ( Element root, String tag )
    {
        if( root == null )
        {
            return null;
        }
       
        debug.print ( 3 , "Suchen nach: " + tag );
       
        List<?> enumChilds = root.getChildren();
        Iterator<?> iter = enumChilds.iterator();
        while( iter.hasNext( ))
        {
            Element childElement = (Element)iter.next();
           
            debug.print ( 3 , childElement.getName() );
           
            if( childElement.getName().equals( tag ) )
            {
                return childElement;
            }
            try
            {
                Element foundElement = this.findTag( childElement , tag );
                if ( foundElement != null )
                {
                    return foundElement;
                }
            }
            catch (IllegalArgumentException e)
            {           
                debug.print( 1 , "findTag Fehler: " + e.getMessage() );
            }
        }
        return null;
    }

Damit suche ich nach dem Element, das klappt auch nur das ersetzen von dem Element bekomme ich nicht hin. Vermutlich ist es nicht so schwer nur ich finde bei Google nicht den passenden Beitrag.

Kann mir jemand weiterhelfen?

Danke
 
ich habe es so versucht allerdings löscht er weder das Element noch wird was eingefügt:

Code:
element = this.findTag( element, valueName );
       
        debug.print( 2, "Element: " + element.toString() );
       
        this.writeXMLFile( d, "_vorher.xml" );
       
        d.removeContent(element);
       
        this.writeXMLFile( d, "_nachloeschen.xml" );
       
        element = d.getRootElement();
       
        element.setContent( neu.getRootElement() );
       
        this.writeXMLFile( d, "_danach.xml" );
 
Die Methode wie in dem Beispiellink funktioniert bei mir nicht.

root.replaceChild(newPersonNode,oldPersonNode);

Kann es sein, dass diese Methode aus JDOM ist? Ich benutze JDOM2. Gibts da was vergleichbares?
 
Du hast da was falsch verstanden, dein Parent-Node ist nicht unbedingt der root-Node. Du brauchst den Parent-Node von dem Knoten, welcher von "findTag" gefunden wurde.
 

Zurück
Oben