本文实例讲述了php输出xml必须header的解决方法。分享给大家供大家参考。具体方法如下:
问题描述:
最近在做一个xml输出时发现我们直接使用echo输入的xml文档会提示Error: Object # has no method ‘load'错误的了,后改用了header()输出xml头文件就解决了,下面记录一下。
解决方法:
由于xml长的和txt文件太相似,所以导致我总和txt混为一谈。
现来看看如下代码:
复制代码 代码如下:
echo '
';
exit;
复制代码 代码如下:
复制代码 代码如下:
header("Content-type:text/xml");
echo '
';
exit;
希望本文所述对大家的php程序设计有所帮助。
/*
写入xml文件
*/
mysql_connect('localhost','root','');
mysql_query("set names utf8");
mysql_select_db('1012javab');
$result = mysql_query("select * from goods");
while($a = mysql_fetch_assoc($result)){
$arr[] = $a;
}
// 实例化一个dom对象
$doc = new DOMDocument;
// 格式化输入
$doc->formatOutput = true;
// 创建一个根节点
$books = $doc->createElement('books');
// 添加元素节点
$books = $doc->appendChild($books);
/*
$books = $doc->appendChild($books);
$book = $doc->createElement('book');
$books->appendChild($book);
$title = $doc->createElement('ttt');
$book->appendChild($title);
*/
foreach($arr as $key=>$val){
echo 11;
$book = $doc->createElement('book');
foreach($val as $key1=>$val1){
###########################第一组
$title = $doc->createElement($key1);
// 创建一个文件节点
$content = $doc->createTextNode($val1);
$title->appendChild($content);
$book->appendChild($title);
}
$books->appendChild($book);
}
if($doc->save('goods.xml')){
echo 'yes';
}else{
echo 'no';
}
/*
$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;
$root = $doc->createElement('book');
$root = $doc->appendChild($root);
$title = $doc->createElement('title');
$title ......余下全文>>
正常现象,新版的浏览器都应该具备这自动解析的功能,这是w3c的标准。
自己查看源文件就好了。