XML/DOM deleting childnodes/hierarchy

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View

I have a problem concerning DOM and XML.

The structure of my xml is the following:
<?xml version="1.0" encoding="utf-8"?>

if I change and save the contents of the link-tags, there is no
(to change the value of a link, I simply select them by getElementsByID
and loop them in a for-loop).

But if I have to delete one of them, it seems that the hierarchy
somehow causes trouble, a "not found error" occurs.
If there is only a list of links, which doesn't contain other links,
the deleting works.

My question: why does the principle of the for-looping work with
changing the values of the link, but doesnt work when i want to delete

The code for deleting:

    if($Sprache=="Deutsch") $parent =
    else if ($Sprache=="Englisch") $parent =
    $okay = $parent3->removeChild($toDelete);

if I replace the last two lines by:

    echo $toDelete;

the value of the link that has to be deleted is given - this works.

Can anyone help me solving the problem or explaining why the one works
and the other doesn't?

Re: XML/DOM deleting childnodes/hierarchy

tsuki@gmx.li wrote:
Quoted text here. Click to load it


Quoted text here. Click to load it


Quoted text here. Click to load it

I haven't run any tests, but: removeChild() is
removeChild(), not removeDescendant(). So if you're trying
to delete a link node that is a descendant of a bereich1
node, but NOT a child of that same bereich1 node, it
wouldn't (and shouldn't) work. What you probably need is
something along these lines (not tested, and I don't
remember the DOM bindings in the PHP5 DOM XML module off
the top of my head):

$okay = $toDelete -> parentNode ->
          removeChild ( $toDelete ) ;

Pavel Lepin

Site Timeline