
XSLTProcessor::transformToDoc 메소드의 반환값을 DOMDocument 객체에서 DOMDocumentFragment 객체로 변경하는 방법은 없습니다.
이유는 DOMDocumentFragment 객체는 XML 문서의 일부분을 나타내는 객체로, XML 문서의 전체를 나타내는 DOMDocument 객체와는 다릅니다.
XSLTProcessor::transformToDoc 메소드는 XML을 변환하여 DOMDocument 객체를 반환하는 방식으로 동작하기 때문에, DOMDocumentFragment 객체를 반환하는 것은 불가능합니다.
그러나, transformToDoc 메소드의 반환값을 DOMDocument 객체에서 DOMDocumentFragment 객체로 변경하는 대안은 다음과 같습니다.
1. transformToDoc 메소드의 반환값을 DOMDocument 객체로 받습니다.
2. DOMDocument 객체의 노드 목록을 가져옵니다.
3. DOMDocument 객체를 파싱하여 XML을 변환하는 대신, 노드 목록을 사용하여 XML을 변환합니다.
다음은 예제 코드입니다.
#hostingforum.kr
php
$xsltProcessor = new XSLTProcessor();
$xsltProcessor->importStylesheet($xsl);
$xml = new DOMDocument();
$xml->loadXML($xmlString);
$transformedDoc = $xsltProcessor->transformToDoc($xml);
$fragment = $transformedDoc->documentElement;
// 노드 목록을 가져옵니다.
$nodes = $fragment->childNodes;
// 노드 목록을 사용하여 XML을 변환합니다.
foreach ($nodes as $node) {
// 노드의 내용을 출력합니다.
echo $node->nodeValue . "n";
}
이 코드에서는 transformToDoc 메소드의 반환값을 DOMDocument 객체로 받고, 노드 목록을 가져옵니다. 그런 다음, 노드 목록을 사용하여 XML을 변환합니다.
2025-07-14 17:27