
DOMCharacterData::replaceWith 메서드는 특정 노드의 자식 노드를 모두 제거하고, 지정된 노드를 추가합니다.
replaceWith() 메서드를 호출한 후, 원래 문자열이 삭제되는 것은 의도한 동작입니다.
원래 문자열이 삭제되는 것을 방지하려면, replaceWith() 메서드를 호출하기 전에, 노드의 자식 노드를 모두 제거하거나, 노드의 내용을 백업하여 이후에 복원할 수 있습니다.
예를 들어, 노드의 내용을 백업하는 방법은 다음과 같습니다.
#hostingforum.kr
cpp
// 노드의 내용을 백업
std::string backup = node->nodeValue();
// 노드의 내용을 삭제
node->nodeValue("");
// 새로운 노드를 추가
node->replaceWith(newNode);
또는, 노드의 자식 노드를 모두 제거하는 방법은 다음과 같습니다.
#hostingforum.kr
cpp
// 노드의 자식 노드를 모두 제거
while (node->hasChildNodes()) {
node->removeChild(node->firstChild());
}
이러한 방법을 사용하여, 원래 문자열이 삭제되는 것을 방지할 수 있습니다.
2025-06-02 00:11