
DOMElement::prepend 메소드는 DOMDocument 객체의 자식 노드를 추가할 때 사용됩니다. 하지만 prepend 메소드는 자식 노드를 추가하는 것과 다르게 동작합니다.
이유는 DOMDocument 객체의 자식 노드는 DOMNodeList 객체로 반환되기 때문입니다. DOMNodeList 객체는 노드를 추가할 때 DOMDocument 객체의 appendChild 메소드를 사용해야 합니다.
따라서 prepend 메소드를 사용하여 새로운 텍스트를 추가하려면 DOMDocument 객체의 자식 노드를 추가할 때 appendChild 메소드를 사용해야 합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
php
$html = '
기존 텍스트';
$dom = new DOMDocument();
$dom->loadHTML($html);
$element = $dom->getElementsByTagName('div')->item(0);
$newElement = $dom->createElement('p', '새로운 텍스트');
$element->insertBefore($newElement, $element->firstChild);
echo $dom->saveHTML();
이 코드를 실행하면 새로운 텍스트가 기존 텍스트의 앞에 추가됩니다.
또한, prepend 메소드를 사용하여 새로운 텍스트를 추가하려면 DOMDocument 객체의 자식 노드를 추가할 때 insertBefore 메소드를 사용해야 합니다. insertBefore 메소드는 노드를 추가할 때 노드의 위치를 지정할 수 있습니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
php
$html = '
기존 텍스트';
$dom = new DOMDocument();
$dom->loadHTML($html);
$element = $dom->getElementsByTagName('div')->item(0);
$newElement = $dom->createElement('p', '새로운 텍스트');
$element->prependChild($newElement);
echo $dom->saveHTML();
이 코드를 실행하면 새로운 텍스트가 기존 텍스트의 앞에 추가됩니다.
따라서 prepend 메소드를 사용하여 새로운 텍스트를 추가하려면 DOMDocument 객체의 자식 노드를 추가할 때 insertBefore 메소드 또는 prependChild 메소드를 사용해야 합니다.
2025-08-05 02:11