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.
PHP.mk документација
DOMElement::removeAttributeNode
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
domelement.removeattributenode.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
domelement.removeattributenode.php
DOMElement::removeAttributeNode
Референца за `domelement.removeattributenode.php` со подобрена типографија и навигација.
DOMElement::removeAttributeNode
класата mysqli_driver
DOMElement::removeAttributeNode — Removes attribute
= NULL
Removes attribute attr from the element.
Параметри
attr-
The attribute node.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.
Errors/Exceptions
Може да фрли DOMException со следните кодови за грешки:
DOM_NO_MODIFICATION_ALLOWED_ERR-
Raised if the node is readonly.
DOM_NOT_FOUND_ERR-
Покренато ако
attris not an attribute of the element.
Види Исто така
- DOMElement::hasAttribute() - Провери дали атрибутот постои
- DOMElement::getAttributeNode() - Враќа атрибут јазол
- DOMElement::setAttributeNode() - Додава нов јазол на атрибут во ставката
Белешки од корисници 1 белешка
xr07354 at gmx dot de ¶
12 години пред