/**
 * 导出xml文件
 */
class XmlExport extends FileExport{

/**
 *  导出文件方法
 */
public function downFile($data){
header('content-Type: text/xml');
header('content-Disposition:attachment;filename='.$this->fileName);
header('Accept-Ranges:bytes');
header('Pragma:no-cache');
header('Expires:0'); if (count($data)<=0){
echo 'No Data !'.chr(13);
} $content = '<?xml version="1.0" encoding="UTF-8" ?>'.chr(9).chr(13);
foreach ($data as $k => $v){
/**
 *  每行的输出数据
 */
$content .= chr(9).'<data>'.chr(13);
foreach($v as $kk => $vv){
$content .= chr(9).chr(9).'<'.$this->changeEncodeToGB2312($kk).'>'
.$this->changeEncodeToGB2312($vv).'<'
.$this->changeEncodeToGB2312($kk).'/>'.chr(13);

}
$content .= chr(9).'</data>'.chr(13);
}

echo $content;
}
}没有弹出下载对话框,直接把内容显示在浏览器里面了,大家帮忙看看

解决方案 »

  1.   

    问题找到了,自己太粗心。/**
     * 导出xml文件
     */
    class XmlExport extends FileExport{

    /**
     *  导出文件方法
     */
    public function downFile($data){
    header('content-Type: text/xml');
    header('content-Disposition:attachment;filename='.$this->fileName);
    header('Accept-Ranges:bytes');
    header('Pragma:no-cache');
    header('Expires:0'); if (count($data)<=0){
    echo 'No Data !'.chr(13);
    } foreach ($data as $k => $v){
    /**
     *  每行的输出数据
     */
    $content .= chr(9).'<data>'.chr(13);
    foreach($v as $kk => $vv){
    $content .= chr(9).chr(9).'<'.$this->changeEncodeToGB2312($kk).'>'
    .$this->changeEncodeToGB2312($vv).'</'
    .$this->changeEncodeToGB2312($kk).'>'.chr(13);

    }
    $content .= chr(9).'</data>'.chr(13);
    }
    $content = '<?xml version="1.0" encoding="UTF-8" ?>'.chr(9).chr(13)
    .'<DataSource>'.chr(13).$content.'</DataSource>';
    echo $content;
    }
    }
      

  2.   

    <?xml version="1.0" encoding="UTF-8" ?>放错位置啦
      

  3.   

    不是的,错误码有两个
    1、.$this->changeEncodeToGB2312($kk).'/>'.chr(13);这句里面的'/'要放前面
    2、没有根元素的