
DOMElement::removeAttribute 메소드는 DOMElement 객체의 특정 속성을 제거합니다. 그러나 이 메소드는 속성을 실제로 제거하는 것이 아니라, 속성을 삭제하는 것만을 의미합니다. 속성이 삭제된 후에도 속성이 여전히 존재하는 것처럼 보일 수 있습니다.
이러한 문제의 원인은 DOMElement 객체가 속성을 삭제한 후에도 속성이 여전히 존재하는 것을 나타내는 속성의 존재 여부를 나타내는 'hasAttribute' 메소드가 여전히 true를 반환하는 때문입니다.
속성을 실제로 제거하려면, DOMElement 객체를 초기화하는 'setAttribute' 메소드를 사용하여 속성을 초기화하는 것이 필요합니다.
예를 들어, 위 코드에서 'id' 속성을 제거하려면, 다음과 같이 코드를 수정할 수 있습니다.
#hostingforum.kr
php
$element = new DOMElement('div', '속성');
$element->setAttribute('id', 'myId');
$element->removeAttribute('id');
$element->setAttribute('id', ''); // id 속성을 초기화합니다.
echo $element->hasAttribute('id'); // false로 출력됩니다.
또는, 속성을 삭제한 후에 DOMElement 객체를 초기화하는 'loadXML' 메소드를 사용할 수도 있습니다.
#hostingforum.kr
php
$element = new DOMElement('div', '속성');
$element->setAttribute('id', 'myId');
$element->removeAttribute('id');
$element->loadXML(''); // DOMElement 객체를 초기화합니다.
echo $element->hasAttribute('id'); // false로 출력됩니다.
2025-07-14 18:45