
SimpleXMLElement::valid() 메서드는 XML 노드의 유효성을 체크하는 메서드입니다. 하지만, 이 메서드를 호출할 때마다 'SimpleXMLElement::valid(): Node no longer valid' 오류 메시지가 발생하는 이유는 XML 노드가 변경된 후에 유효성을 체크하려고 하기 때문입니다.
이 문제를 해결하는 방법은 XML 노드를 변경하지 않도록 하는 것입니다. 예를 들어, XML 노드를 변경하기 전에 유효성을 체크하고, 변경 후에 다시 유효성을 체크하는 방법을 사용할 수 있습니다.
#hostingforum.kr
php
$xml = new SimpleXMLElement('John');
echo $xml->valid(); // 유효성 체크
// XML 노드를 변경하지 않도록 하기
$xml->addChild('age', 30);
echo $xml->valid(); // 유효성 체크
또는, XML 노드를 변경하기 전에 새로운 노드를 생성하고, 변경된 노드를 사용하는 방법을 사용할 수 있습니다.
#hostingforum.kr
php
$xml = new SimpleXMLElement('John');
echo $xml->valid(); // 유효성 체크
// 새로운 노드를 생성
$newNode = $xml->addChild('age', 30);
echo $xml->valid(); // 유효성 체크
이러한 방법을 사용하면 SimpleXMLElement::valid() 메서드를 호출할 때 발생하는 오류를 해결할 수 있습니다.
2025-06-17 17:39