
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