DOMElement::removeAttributeNode
(PHP 5)
DOMElement::removeAttributeNode — Removes attribute
Description
Removes attribute oldnode
from the element.
Parameters
-
oldnode
-
The attribute node.
Return Values
Returns TRUE
on success or FALSE
on failure.
Errors/Exceptions
-
DOM_NO_MODIFICATION_ALLOWED_ERR
-
Raised if the node is readonly.
-
DOM_NOT_FOUND_ERROR
-
Raised if
oldnode
is not an attribute of the element.
See Also
- DOMElement::hasAttribute() - Checks to see if attribute exists
- DOMElement::getAttributeNode() - Returns attribute node
- DOMElement::setAttributeNode() - Adds new attribute node to element
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Обработка XML
- Document Object Model
- Функция DOMElement::__construct() - Создание нового объекта класса DOMElement
- Функция DOMElement::getAttribute() - Возвращает значение атрибута
- Функция DOMElement::getAttributeNode() - Возвращает узел атрибута
- Функция DOMElement::getAttributeNodeNS() - Возвращает узел атрибута
- Функция DOMElement::getAttributeNS() - Возвращает значение атрибута
- Функция DOMElement::getElementsByTagName() - Возвращает элементы по имени тэга
- Функция DOMElement::getElementsByTagNameNS() - Получение элементов по локальному имени в заданном пространстве имен
- Функция DOMElement::hasAttribute() - Проверяет наличие атрибута
- Функция DOMElement::hasAttributeNS() - Проверяет, существует ли заданный атрибут
- Функция DOMElement::removeAttribute() - Удаляет атрибут
- Функция DOMElement::removeAttributeNode() - Удаляет атрибут
- Функция DOMElement::removeAttributeNS() - Удаляет атрибут
- Функция DOMElement::setAttribute() - Устанавливает значение атрибута
- Функция DOMElement::setAttributeNode() - Добавляет новый узел атрибута к элементу
- Функция DOMElement::setAttributeNodeNS() - Добавляет новый атрибут к элементу
- Функция DOMElement::setAttributeNS() - Добавляет новый атрибут
- Функция DOMElement::setIdAttribute() - Объявляет атрибут с заданным именем ключевым атрибутом
- Функция DOMElement::setIdAttributeNode() - Объявляет заданный узал атрибута ключевым
- DOMElement::setIdAttributeNS
Коментарии
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.