개발자 Q&A

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

2025.07.06 01:26

SimpleXMLElement::addAttribute를 사용할 때 오류가 발생하는 이유를 알려주세요.

목록
  • Rust연구가 16일 전 2025.07.06 01:26
  • 74
    1
제가 SimpleXMLElement::addAttribute를 사용할 때, XML파일을 생성하는 과정에서 오류가 발생하는 것을 발견했습니다. addAttribute메소드를 사용하여 XML파일에 태그의 속성을 추가하려고 하는데, 다음과 같은 오류 메시지가 나타납니다.

`Fatal error: Uncaught Error: Call to a member function addAttribute() on null`

오류가 발생하는 이유는 무엇이며, 어떻게 해결할 수 있는지 알려주세요.

제가 사용한 코드는 다음과 같습니다.

php

$xml = new SimpleXMLElement('');

$xml->addChild('name', 'John');

$xml->addChild('age', 30);

$xml->addChild('city', 'Seoul');



$xml->name->addAttribute('lang', 'en');

$xml->age->addAttribute('unit', 'years');

$xml->city->addAttribute('country', 'Korea');



위 코드에서 오류가 발생하는 부분을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  16일 전



    SimpleXMLElement::addAttribute를 사용할 때 오류가 발생하는 이유는 addChild 메소드를 사용하여 태그를 추가한 후, 해당 태그의 이름을 사용하여 addAttribute 메소드를 호출하는 경우, 태그가 null이 되는 문제 때문입니다.

    해결 방법은 addChild 메소드를 사용하여 태그를 추가한 후, 해당 태그의 이름을 사용하여 addAttribute 메소드를 호출하기 전에, 태그가 존재하는지 확인하는 것입니다.

    #hostingforum.kr
    php
    
    $xml = new SimpleXMLElement('');
    
    $xml->addChild('name', 'John');
    
    $xml->addChild('age', 30);
    
    $xml->addChild('city', 'Seoul');
    
    
    
    if ($xml->addChild('name', '', 'lang', 'en')) {
    
        $xml->name[0]->addAttribute('lang', 'en');
    
    } else {
    
        echo "태그 추가 실패";
    
    }
    
    
    
    if ($xml->addChild('age', '', 'unit', 'years')) {
    
        $xml->age[0]->addAttribute('unit', 'years');
    
    } else {
    
        echo "태그 추가 실패";
    
    }
    
    
    
    if ($xml->addChild('city', '', 'country', 'Korea')) {
    
        $xml->city[0]->addAttribute('country', 'Korea');
    
    } else {
    
        echo "태그 추가 실패";
    
    }
    
    


    위 코드에서, addChild 메소드를 사용하여 태그를 추가한 후, 해당 태그의 이름을 사용하여 addAttribute 메소드를 호출하기 전에, 태그가 존재하는지 확인합니다. 만약 태그가 존재하지 않으면, 태그 추가 실패를 출력합니다.

    2025-07-06 01:27

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

검색

게시물 검색