You are here: Re: XML/DOM deleting childnodes/hierarchy « PHP Programming Language « IT news, forums, messages
Re: XML/DOM deleting childnodes/hierarchy

Posted by p.lepin on 10/18/06 07:28

tsuki@gmx.li wrote:
> <?xml version="1.0" encoding="utf-8"?>
> <website>
> <language1>
> <seite>
> <bereich1>
> <text></text>
> <link>
> <link></link>
> </link>
> <link>
> <link></link>
> </link>
> <link>
> </link>
> </bereich1>
> <bereich2>
> </bereich2>
> </seite>
> </language1>
> </website>

[...]

> 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.

[...]

> $DeleteIt=(int)$DeleteIt;
> if($Sprache=="Deutsch") $parent =
> $dom->getElementsByTagName('language1')->item(0);
> else if ($Sprache=="Englisch") $parent =
> $dom->getElementsByTagName('language2')->item(0);
> $parent2=$parent->getElementsByTagName('seite')->item
> ($Seite);
> $parent3=$parent2->getElementsByTagName('bereich1')->
> item(0);
> $toDelete=$parent3->getElementsByTagName('link')->
> item($DeleteIt);
> $okay = $parent3->removeChild($toDelete);
>
> if I replace the last two lines by:
>
> $toDelete=$parent3->getElementsByTagName('link')->item(
> $DeleteIt)->nodeValue;
> 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?

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

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация