微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

关于在php中保存文件的问题

我使用以下代码PHP中执行XSLT:

 # LOAD XML FILE 
 $XML = new DOMDocument(); 
 $XML = simplexml_load_file("images/upload/source.xml");

 # START XSLT 
 $xslt = new XSLTProcessor(); 
 $XSL = new DOMDocument();  
 $XSL->load( 'xsl/transfer.xsl', LIBXML_NOCDATA); 
 $xslt->importStylesheet( $XSL ); 

 #PRINT   
 print $XML->saveXML();
 print $XML->save("newfile.xml") ;

代码非常简单,我们需要加载源xml文件,然后加载样式表,实际上它确实有效.

导致麻烦的代码是最后一行:

print $XML->save("newfile.xml") ;

运行后我得到错误“致命错误调用未定义的方法SimpleXMLElement :: save()”.但是,实际上,我在这里遵循一个教程:
http://devzone.zend.com/article/1713.

也许我搞砸了什么,有人能给我一些暗示吗?提前致谢.

根据你们的建议,我修改了这样的代码

 # LOAD XML FILE 
 $XML = new DOMDocument(); 
 $XML->load("images/upload/source.xml");

 # START XSLT 
 $xslt = new XSLTProcessor(); 
 $XSL = new DOMDocument();  
 $XSL->load( 'xsl/transfer.xsl', LIBXML_NOCDATA); 
 $xslt->importStylesheet( $XSL ); 

 #PRINT    
  print $xslt->transformToXML( $XML );

现在正确转换的XML在浏览器中显示,我已经尝试了一些方法,但仍然无法弄清楚如何将此结果打印到文件而不是在浏览器中显示,任何帮助表示赞赏,提前感谢.

解决方法:

您正在更改$XML的定义方式,只需在$XML而不是simplexml_load_file上调用load方法

$XML = new DOMDocument(); 
$XML->load("images/upload/source.xml");

完全没有理由使用simplexml,因为XSLT处理都是使用DOMDocument完成的.所以只需更换那一行,你应该好好去…

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。