개발자 Q&A

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

2025.08.07 17:24

DOMDocument::createElement 사용 관련 질문

목록
  • 리액트광 8시간 전 2025.08.07 17:24 새글
  • 1
    1
제가 DOMDocument::createElement 메소드를 사용하여 HTML 요소를 생성하려고 하는데, 다음과 같은 코드를 작성했습니다.

php

$doc = new DOMDocument();

$element = $doc->createElement('div');



여기서 'div' 요소를 생성한 후, 이 요소에 id 속성을 추가하고 싶습니다. 하지만, `$element->setAttribute('id', 'myDiv');`와 같은 코드를 사용하면 id 속성이 추가되지 않습니다. 왜 이런 현상이 발생하는지 궁금합니다.

또한, `$element = $doc->createElement('div', '내용');`와 같은 코드를 사용하면 div 요소 안에 내용이 들어가는데, 어떻게 내용을 추가할 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  8시간 전



    DOMDocument::createElement 메소드는 HTML 요소를 생성할 때 사용하는 메소드입니다. 이 메소드는 요소 이름과 내용을 함께 생성할 수 있습니다.

    요소 이름만 지정하는 경우, `$element = $doc->createElement('div');`와 같이 사용하면 div 요소만 생성됩니다.

    이후에 id 속성을 추가하려면 `$element->setAttribute('id', 'myDiv');`와 같이 사용하면 됩니다.

    그러나, id 속성이 추가되지 않는 현상은 DOMDocument의 특징으로 인해 발생하는 것이 아닙니다.

    요소 이름과 내용을 함께 생성하는 경우, `$element = $doc->createElement('div', '내용');`와 같이 사용하면 div 요소 안에 내용이 들어갑니다.

    이 경우, 내용을 추가하려면 `$element->nodeValue = '내용';`와 같이 사용하면 됩니다.

    또는, `$element->appendChild($doc->createTextNode('내용'));`와 같이 사용하면 됩니다.

    이러한 방법을 사용하면 요소 안에 내용을 추가할 수 있습니다.

    예를 들어, 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $doc = new DOMDocument();
    
    $element = $doc->createElement('div', '내용');
    
    $element->setAttribute('id', 'myDiv');
    
    $doc->appendChild($element);
    
    echo $doc->saveHTML();
    
    


    이 코드를 실행하면, `
    내용
    `와 같은 HTML 요소가 생성됩니다.

    2025-08-07 17:25

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

검색

게시물 검색