note 90292 added to domnode.removechild
| From: | crazy888sathotmaildotcom at osu1 dot php dot net | Date: | Wed, 15 Apr 2009 08:50:04 +0000 |
| Subject: | note 90292 added to domnode.removechild | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-153282@lists.php.net to get a copy of this message | ||
You can't remove DOMNodes from a DOMNodeList as you're iterating over them in a foreach
loop. For example...
$domNodeList = $domDocument->getElementsByTagname('p');
foreach ( $domNodeList as $domElement ) {
...do stuff with $domElement...
$domElement->parentNode->removeChild($domElement);
}
... will seemingly leave the internal iterator on the foreach out of wack and results will be quite
strange. Though, making a queue of items to remove seems to work. For example...
$domNodeList = $domDocument->getElementsByTagname('p');
$domElemsToRemove = array();
foreach ( $domNodeList as $domElement ) {
...do stuff with $domElement...
$domElemsToRemove[] = $domElement;
}
foreach( $domElemsToRemove as $domElement ){
$domElement->parentNode->removeChild($domElement);
}
----
Server IP: 64.71.164.2
Probable Submitter: 98.193.0.14
----
Manual Page -- http://www.php.net/manual/en/domnode.removechild.php
Edit -- https://master.php.net/note/edit/90292
Del: integrated -- https://master.php.net/note/delete/90292/integrated
Del: useless -- https://master.php.net/note/delete/90292/useless
Del: bad code -- https://master.php.net/note/delete/90292/bad+code
Del: spam -- https://master.php.net/note/delete/90292/spam
Del: non-english -- https://master.php.net/note/delete/90292/non-english
Del: in docs -- https://master.php.net/note/delete/90292/in+docs
Del: other reasons-- https://master.php.net/note/delete/90292
Reject -- https://master.php.net/note/reject/90292
Search -- https://master.php.net/manage/user-notes.php