(PHP 5, PHP 7, PHP 8)

DOMElement::removeAttributeNodeEfface un attribut


public DOMElement::removeAttributeNode(DOMAttr $attr): DOMAttr|false

Efface l'attribut attr de l'élément.

Liste de paramètres


Le nœud de l'attribut.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions


Lancé si le nœud est en lecture seule.


Lancé si attr n'est pas un attribut de l'élément.

Voir aussi

add a note

User Contributed Notes 1 note

xr07354 at gmx dot de
10 years ago
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:
for ( $k=0; $k < $element->attributes->length; $k++) {
/* 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:
for ( $k = $element->attributes->length - 1; $k >= 0; --$k) {
/* 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.
To Top