2010-03-22 3 views
0

PHP와 DOM을 사용하여 xslt 시트에 만든 xml 문서를로드하려고하는데 행운이 없습니다.XSLT 시트에 XML 문자열로드

$xml_string = $doc->saveXML(); 
//echo $xml_string; 

$xml = new DOMDocument; 
$xml->load($xml_string); 

$xsl = new DOMDocument; 
$xsl->load('musicInformation.xslt'); 

// Configure the transformer 
$proc = new XSLTProcessor; 
$proc->importStyleSheet($xsl); // attach the xsl rules 

echo $proc->transformToXML($xml); 

나는 데이터베이스에서 추출 된 일부 데이터를 기반으로 대신 내가 문자열로 저장된 실제 문서로 저장, 나는이 XSLT 시트에 문자열을 넣어 XML 파일을 생성하고이 오류가

발생

Warning: I/O warning : failed to load external entity Warning: xpath.c:11079 Internal error: document without root in /home/dd615/public_html/webservice.php on line 73

도움을 주시면 감사하겠습니다.

+0

오류 메시지를 게시하거나 실제 문제가 있습니까? 행운이 없다고 말하면 실제 문제가 무엇인지 알려주지 않습니다. – Oded

+0

죄송합니다, 어, 나는 어쩌면 데이터베이스에서 추출한 일부 데이터를 기반으로 파일 xml 파일을 만들었고 실제 문서로 저장하지 않고 문자열로 저장 했으므로 문자열을 xslt 시트에 넣었고이 오류가 발생했습니다 경고 : I/O 경고 : 외부 엔티티를로드하지 못했습니다. 경고 : xpath.c : 11079 내부 오류 : 73 페이지의 /home/dd615/public_html/webservice.php에 루트가없는 문서 – dbomb101

답변

1

문자열이 XML이 아닙니다.

유효한 XML에는 root element (즉, XML 선언과 별도로 문서의 다른 모든 요소를 ​​래핑하는 단일 요소)이 필요합니다. 이와 같은

: 여러 같은 뿌리가있는 경우

<?xml version="1.0" ?> 
<root> 
    <element></element> 
    <element></element> 
    ... 
</root> 

는 XML이 유효하지 않습니다 및로드되지 않습니다.