2010-06-21 4 views
1

Chaque fois que je produis un fichier xml, je reçois toujours 9 lignes blanches d'espace en haut, quelqu'un sait quel est le problème? Je reçois aussi un horodatage à la fin que je ne veux pas:CakePHP XML (1.3)

<!-- 0.35s --> 

est ici l'erreur:

XML Parsing Error: XML or text declaration not at start of entity 
Location: http://example.com/controller/get 
Line Number 9, Column 1:<?xml version="1.0" encoding="UTF-8" ?> 

Je mets $this->RequestHandler->setContent('xml','text/xml'); dans beforeFilter() mon contrôleur, et la vue ressemble à ceci:

<?php echo $xml->serialize($data); ?> 

alors que la mise en page ressemble à ceci:

<?php 
    header("content-type: text/xml"); 
    echo $this->Xml->header(); 
    echo $content_for_layout; 
?> 

Des idées? Merci.

Répondre

1

Les 9 lignes vides sont probablement parce que vous avez des lignes avec des espaces à la fin de certains des fichiers php dans votre projet. Cela m'a attrapé plusieurs fois dans CakePHP.

Pour un moyen simple de supprimer les lignes vides à la fin de tous vos fichiers php, voir ce post: Find all files with Blank or WS at BOF or EOF

+1

True. Cette "caractéristique" est stupide. – ash

1

L'horodatage est ajouté au app/webroot/index.php, vous pouvez donc le supprimer en éditant ce fichier (vous trouverez le code correspondant à la fin du fichier).

+0

Merci, c'est débarrassé de l'horodatage, mais les 9 nouvelles lignes persistent ... Vous pouvez – ash

2

Vous pouvez également définir Configure :: write ('debug', 0); dans les contrôleurs beforeFilter() ou tout autre méthode/serviceCall avant le rendu pour se débarrasser de l'horodatage.

+1

mettez aussi Configure :: write ('debug', 0) dans votre layout. –

Questions connexes