Php XML生成错误

Php XML生成错误,php,xml,zend-framework,Php,Xml,Zend Framework,我正试图用Zend_框架生成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"?> ^ 有任何帮助或建议吗?如果在应用程序的所有操作中出现额外的空白,请首先测试。 如

我正试图用Zend_框架生成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"?>
^

有任何帮助或建议吗?

如果在应用程序的所有操作中出现额外的空白,请首先测试。
如果是,请选中
/public/index.php和 /application/bootstrap.php

对于第一次测试之前的尾随空格,如果应用程序的所有操作中都出现了额外的空格。
如果是,请选中
/public/index.php和 /application/bootstrap.php

对于
之前的尾随空格,注意到您创建了一个版本为1.0的文档,但您显示的错误版本为1.2。我的错误,在我发布错误消息时正在混乱。我已经更新了!注意到您创建了一个版本为1.0的文档,但是您向我们显示的错误版本为1.2。当我发布错误消息时,我的坏消息正在混乱中。我已经更新了!ZF 1.10。并通过Firefox查看。1.10.6对我来说一切都很好。您检查过outputbuffer的内容了吗?我建议在ZF开始输出缓冲之前寻找一些输出。其他页面(不含xml)是否也有这些带前缀的空格?如果是的话,那么/public/index.php和/application/bootstra.php将是第一个要查找的。通常,旧的调试语句是这些片段的根本原因。但是不应该让
ob_clean()
处理空白区域吗?谢谢您的帮助!你的评论让我重新审视了整个应用程序,安装xdebug等等。事实证明,在我的
ob\u clean()
只丢弃缓冲区中的输出之前有一个空格,因此
ob\u start()之后的每个输出都会丢弃。在引导zend_view_资源时调用ob_start(我想,不确定)。在index.php和bootstrap.php之后,很高兴能够提供帮助!ZF 1.10。并通过Firefox查看。1.10.6对我来说一切都很好。您检查过outputbuffer的内容了吗?我建议在ZF开始输出缓冲之前寻找一些输出。其他页面(不含xml)是否也有这些带前缀的空格?如果是的话,那么/public/index.php和/application/bootstra.php将是第一个要查找的。通常,旧的调试语句是这些片段的根本原因。但是不应该让
ob_clean()
处理空白区域吗?谢谢您的帮助!你的评论让我重新审视了整个应用程序,安装xdebug等等。事实证明,在我的
ob\u clean()
只丢弃缓冲区中的输出之前有一个空格,因此
ob\u start()之后的每个输出都会丢弃。在引导zend_view_资源时调用ob_start(我想,不确定)。在index.php和bootstrap.php之后,很高兴能够提供帮助!
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);
    }