本文實例講述了php輸出xml必須header的解決方法。分享給大家供大家參考。具體方法如下:
問題描述:
最近在做一個xml輸出時發現我們直接使用echo輸入的xml文檔會提示Error: Object # has no method ‘load'錯誤的了,後改用了header()輸出xml頭文件就解決了,下面記錄一下。
解決方法:
由於xml長的和txt文件太相似,所以導致我總和txt混為一談。
現來看看如下代碼:
復制代碼 代碼如下:echo '<?xml version="1.0" encoding="UTF-8"?>
<sitemap>
<loc>http://www.bkjia.com/</loc>
<lastmod>2013-01-22T11:00:18+08:00</lastmod>
</sitemap>
';
exit;
就是這麼一段代碼,死活輸出的xml無法通過xml驗證。
提示錯誤 Error: Object # has no method ‘load'
最後查了半天都和直接放在1.xml裡的文件一樣
具體代碼如下
復制代碼 代碼如下:<?xml version="1.0" encoding="UTF-8"?>
<sitemap>
<loc>http://www.bkjia.com/</loc>
<lastmod>2013-01-22T11:00:18+08:00</lastmod>
</sitemap>
加個header就好了。 折騰了好幾個小時。。。。。
具體代碼如下
復制代碼 代碼如下:<?php
header("Content-type:text/xml");
echo '<?xml version="1.0" encoding="UTF-8"?>
<sitemap>
<loc>http://www.bkjia.com/</loc>
<lastmod>2013-01-22T11:00:18+08:00</lastmod>
</sitemap>
';
exit;
希望本文所述對大家的php程序設計有所幫助。
<?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的標准。
自己查看源文件就好了。