2011-01-05 8 views
1

Ich versuche, eine XML-Ausgabe mit Zend_Framework zu erzeugen, aber das böse Ding hält Aufspringen:XML Generation Fehler

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"?> 
^ 

Soweit ich weiß, gibt es keine weißen Räume in keinem meiner Include-Dateien und selbst wenn es da wäre, denke ich, dass die ob_clean() Funktion hätte sich darum kümmern müssen. Hier ist mein Code:

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); 
    } 

Irgendwelche Hilfe oder Vorschläge?

+0

Nur, dass Sie ein Dokument mit der Version 1.0 erstellen, aber der Fehler, den Sie uns hat Version 1.2 zeigen, werden. –

+0

Mein Fehler war, als ich die Fehlermeldung gepostet habe. Ich habe es aktualisiert! –

Antwort

1

Zuerst testen, ob die zusätzlichen Leerzeichen in allen Aktionen Ihrer Anwendung auftreten.
Wenn ja, überprüfen
/public/index.php und /application/bootstrap.php
für Räume vor <?php oder alten Links über Debug-Anweisungen Hinter.

Edit: übertragen die hilfreiche Informationen aus den Kommentaren auf die Antwort zu bemerken

+0

ZF 1.10. Und es über Firefox anzeigen. –

+0

alles gut mit 1.10.6 für mich. haben Sie die Inhalte des Ausgabepuffers schon inspiziert? Ich schlage vor, nach einer Ausgabe zu suchen, bevor ZF die Ausgabepufferung startet. haben andere Seiten (ohne XML) auch diese vorangestellten Leerzeichen? Wenn ja, /public/index.php und /application/bootstra.php würden die ersten sein, nach denen zu suchen. In der Regel sind alte Debug-Anweisungen die Hauptursache für solche Fehler. –

+0

Aber sollte der 'ob_clean()' nicht für den Leerraum sorgen? –