개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.16 10:40

DOMDocumentFragment::replaceChildren 사용법에 대한 질문

목록
  • 백준도사 19시간 전 2025.05.16 10:40 새글
  • 2
    1
제가 현재 DOMDocumentFragment::replaceChildren를 사용하여 자식 노드를 교체하려고 합니다. 그러나 이 함수를 사용하면 모든 자식 노드를 삭제하고 새로운 노드를 삽입하는 것처럼 보입니다.

예를 들어, 다음 코드를 보겠습니다.

php

$doc = new DOMDocument();

$fragment = $doc->createDocumentFragment();

$fragment->appendChild($doc->createElement('div'));

$fragment->appendChild($doc->createElement('p'));



$doc->getElementsByTagName('body')->item(0)->appendChild($fragment);

$doc->getElementsByTagName('div')->item(0)->appendChild($doc->createElement('span'));



$fragment->replaceChildren($doc->createElement('div'));



위 코드에서, div 태그와 p 태그가 모두 삭제되고, 새로운 div 태그만 삽입됩니다.

이와 같이 모든 자식 노드를 삭제하고 새로운 노드를 삽입하는 것이 원래의 의도였는지, 아니면 나의 이해가 잘못된 것인지 궁금합니다.

또한, 이 함수를 사용하여 모든 자식 노드를 삭제하고 새로운 노드를 삽입하는 방법을 알려주시면 감사하겠습니다.

감사합니다.

    댓글목록

    profile_image
    나우호스팅  19시간 전



    DOMDocumentFragment::replaceChildren는 자식 노드를 교체하는 데 사용되는 메서드입니다. 이 메서드는 모든 자식 노드를 삭제하고 새로운 노드를 삽입하는 방식으로 동작합니다.

    이 메서드를 사용하여 모든 자식 노드를 삭제하고 새로운 노드를 삽입하려면, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    php
    
    $doc = new DOMDocument();
    
    $fragment = $doc->createDocumentFragment();
    
    $fragment->appendChild($doc->createElement('div'));
    
    $fragment->appendChild($doc->createElement('p'));
    
    
    
    $doc->getElementsByTagName('body')->item(0)->appendChild($fragment);
    
    $doc->getElementsByTagName('div')->item(0)->appendChild($doc->createElement('span'));
    
    
    
    // 모든 자식 노드를 삭제하고 새로운 노드를 삽입
    
    $fragment->replaceChildren($doc->createElement('div'));
    
    
    
    // 새로운 노드의 자식 노드를 추가
    
    $newNode = $fragment->firstChild;
    
    $newNode->appendChild($doc->createElement('span'));
    
    $newNode->appendChild($doc->createElement('p'));
    
    


    이 코드에서는 replaceChildren 메서드를 사용하여 모든 자식 노드를 삭제하고 새로운 노드를 삽입합니다. 그리고 새로운 노드의 자식 노드를 추가하여 원하는 결과를 얻을 수 있습니다.

    2025-05-16 10:41

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 19,920건 / 2 페이지

검색

게시물 검색