note 112450 added to domelement.removeattributenode
| From: | xr07354 at gmx dot de | Date: | Tue, 18 Jun 2013 13:16:15 +0000 |
| Subject: | note 112450 added to domelement.removeattributenode | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-195261@lists.php.net to get a copy of this message | ||
Basic: I use PHP5.4.9 from Ubuntu 13.04 repository. The aim of my code is to iterate HTML source (as
a DomDocument) recursively and cleanup everything that is not valid to be used inside Epub files
(i.e. and attribute align is not valid for paragraphs in Epubs).
FIRST: Today I tried removing attributes from a DOMElement using this simple code:
<?php
for ( $k=0; $k < $element->attributes->length; $k++) {
if( /* some rule */ ){
var_dump( $element->attributes->item($k)->nodeName);
$element->removeAttributeNode( $element->attributes->item($k));
}
}
?>
Unfortunately all attributes still existed when this loop was finished, even if these var_dumps told
me that deleting them was tried.
I solved this problem iterating the attributes list backward:
<?php
for ( $k = $element->attributes->length - 1; $k >= 0; --$k) {
if( /* same rule */ ){
var_dump( $element->attributes->item($k)->nodeName);
$element->removeAttributeNode( $element->attributes->item($k));
}
}
?>
SECOND: DOMElement::removeAttributeNode does NOT return a bool but a DOMAttr object.
----
Server IP: 69.147.83.199
Probable Submitter: 178.24.196.75
----
Manual Page -- http://php.net/manual/en/domelement.removeattributenode.php
Edit -- https://master.php.net/note/edit/112450
Del: integrated -- https://master.php.net/note/delete/112450/integrated
Del: useless -- https://master.php.net/note/delete/112450/useless
Del: bad code -- https://master.php.net/note/delete/112450/bad+code
Del: spam -- https://master.php.net/note/delete/112450/spam
Del: non-english -- https://master.php.net/note/delete/112450/non-english
Del: in docs -- https://master.php.net/note/delete/112450/in+docs
Del: other reasons-- https://master.php.net/note/delete/112450
Reject -- https://master.php.net/note/reject/112450
Search -- https://master.php.net/manage/user-notes.php