2011-01-05 87 views
1

我試圖生成Zend_Framework一個XML輸出,但這個討厭的事情不斷彈出:XML生成錯誤

XML Parsing Error: XML or text declaration not at start of entity 
Location: http://cart/index/kurpirkt 
Line Number 2, Column 1:<?xml version="1.0" encoding="utf-8"?> 
^ 

據我所知沒有白空間在我的任何包含文件,即使有,我認爲ob_clean()函數應該照顧它。這裏是我的代碼:

public function kurpirktAction() 
    { 
     ob_clean(); 
     // XML-related routine 
     $xml = new DOMDocument('1.0', 'utf-8'); 
     $xml->appendChild($xml->createElement('foo', 'bar')); 
     $output = $xml->saveXML(); 

     // Both layout and view renderer should be disabled 
     Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->setNoRender(true); 
     Zend_Layout::getMvcInstance()->disableLayout(); 

     // Setting up headers and body 
     $this->_response->setHeader('Content-Type', 'text/xml; charset=utf-8') 
       ->setBody($output); 
    } 

任何幫助或建議?

+0

就注意到,創建文檔1.0版本,但都出現了我們在錯誤的版本1.2。 – 2011-01-05 21:35:13

+0

我的不好,當我發佈錯誤消息時,正在搞亂。我更新了它! – 2011-01-05 21:38:32

回答

1

首先測試一下,如果在你的應用程序的所有動作中發生額外的空白。
如果是這樣,檢查前<?php或老左在調試語句結尾空格
/public/index.php/application/bootstrap.php

編輯:轉移從評論的有用的信息,答案

+0

ZF 1.10。並通過Firefox查看它。 – 2011-01-06 04:15:29

+0

一切都很好,我爲1.10.6。 您是否檢查過輸出緩衝區的內容? 我建議在ZF啓動輸出緩衝之前尋找一些輸出。其他頁面(不含xml)也有這些前綴空格?如果/ public/index.php和/application/bootstra.php是第一個查找的。通常舊的調試語句是這種分裂的根源。 – 2011-01-06 05:30:33

+0

但不應該有'ob_clean()'照顧空白? – 2011-01-06 12:40:18