
XSLTProcessor::transformToDoc 메소드 호출 후 반환된 DOMDocument 객체가 null 인 경우는 주로 두 가지 이유로 발생할 수 있습니다.
첫 번째 이유는 XSLTProcessor 객체가 초기화되지 않은 상태에서 transformToDoc 메소드를 호출한 경우입니다. XSLTProcessor 객체를 초기화하기 위해서는 importStylesheet 메소드를 호출하여 XSL 스타일 시트를 로드해야 합니다.
두 번째 이유는 XML 문서가 유효하지 않은 경우입니다. XML 문서가 유효하지 않으면 DOMDocument 객체를 생성할 수 없으며, 이로 인해 transformToDoc 메소드 호출 후 반환된 DOMDocument 객체가 null 이 될 수 있습니다.
해결 방법은 다음과 같습니다.
1. XSLTProcessor 객체를 초기화하기 위해 importStylesheet 메소드를 호출하십시오.
2. XML 문서가 유효한지 확인하기 위해 DOMDocument 객체를 생성하고 loadXML 메소드를 호출하여 XML 문서를 로드하십시오.
3. XSLTProcessor 객체의 transformToDoc 메소드를 호출하기 전에 XML 문서가 유효한지 확인하십시오.
예를 들어, 다음과 같이 코드를 수정할 수 있습니다.
#hostingforum.kr
php
$xslt = new XSLTProcessor();
$xslt->importStylesheet($xsl);
$xml = new DOMDocument();
if ($xml->loadXML($xmlString) === false) {
// XML 문서가 유효하지 않은 경우 처리하십시오.
}
$result = $xslt->transformToDoc($xml);
또한, XSLTProcessor 객체의 transformToDoc 메소드 호출 후 반환된 DOMDocument 객체가 null 인 경우를 처리하기 위해 try-catch 블록을 사용할 수 있습니다.
#hostingforum.kr
php
try {
$xslt = new XSLTProcessor();
$xslt->importStylesheet($xsl);
$xml = new DOMDocument();
if ($xml->loadXML($xmlString) === false) {
throw new Exception('XML 문서가 유효하지 않습니다.');
}
$result = $xslt->transformToDoc($xml);
} catch (Exception $e) {
// 예외 처리하십시오.
}
2025-03-27 17:06