将XML字符串加载到Xslt表中

时间:2010-03-22 19:31:42

标签: php xslt dom

我正在尝试将使用PHP和DOM创建的xml文档加载到xslt工作表中,但没有运气。

$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);

我根据从数据库中提取的一些数据创建了一个xml文件,而不是将其保存为实际文档,而是将其保存为字符串,我将字符串放入xslt表中并发生此错误

  

警告:I / O警告:无法加载   外部实体警告:xpath.c:11079   内部错误:没有root的文档   在   /home/dd615/public_html/webservice.php   第73行

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

字符串不是XML。

有效的XML需要root element(即,除了XML声明之外,包含文档中所有其他元素的单个元素)。

如:

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

如果您有多个此类根,则XML无效且无法加载。