2011-05-10 4 views
0

J'essaie de générer des fichiers xml contenant les informations que j'ai insérées dans la console de l'application. il contient des informations sur le titre et une galerie d'images, j'ai un problème avec la liste des images de la galerie d'images. Tout le reste est généré correctement mais quand j'essaye de remplir l'information de la galerie d'image cela ne fonctionne pas. Ceci est une copie du problème, s'il vous plaît des conseils et je suis toujours un débutant et cela pourrait être une erreur stupide, mais s'il vous plaît un besoin d'aide. Pourquoi n'utilisez-vous pas SimpleXML pour générer la sortie XML?Génération de fichiers XML

function array2XML($anews) 
    { 

     $images = $this->selectAllImages($anews); 


     $_xml = "  <tag path=\"".wk_show($anews['FileLink'])."\">\n" 
       ."   <title>".wk_show($anews['Title'])."</title>\n" 
       ."   <dateT>".wk_show($anews['Date'])."</dateT>\n" 
       ."   <desc>".wk_show($anews['Content'])."</desc>\n" 
       ."   <photos pathTh=\"admin/images/news/thumbs/\" pathPr=\"admin/images/news/preview/\">\n"; 

// here is the problem when i remove it it works but it only take 1 image of the gallery 
       foreach($images as $image) 
        { 
        echo "i am in the loop <br />"; 

         $_xml ="   <tag path=\"".wk_show($image['FileLink'])."\"/>\n"; 
        } 
       $_xml ="   </photos>\n" 
       ."  </tag>\n"; 

     $_xml = preg_replace(array("/\&([a-z\d\#]+)\;/i", "/\&/", "/\#\|\|([a-z\d\#]+)\|\|\#/i", "/(\=\"\-\/\%\?\!\'\(\)\[\\{\}\ \#\+\,\@_])/e"), 
          array("#||\\1||#", "&", "&\\1;", "'&#'.ord('\\1').';'"), 
          $_xml); 

     $_xml = ereg_replace (" & ", " &amp; ", $_xml); 

     return $_xml; 
    } 
+0

Utilisez DOM ou SimpleXml pour créer le code XML. Cela permettra de régler beaucoup de problèmes auxquels vous êtes confrontés en ce moment. En outre, la famille ereg est obsolète. – Gordon

+0

duplication possible de [Un programme simple pour les valeurs de nœud et de nœud CRUD du fichier xml] (http://stackoverflow.com/questions/4906073/simple-program-to-crud-node-and-node-values-of -xml-fichier) – Gordon

Répondre

1

Dans la boucle, vous réaffectez $ xml, sans le concaténer. Utilisez $xml .= par opposition à $xml =

0

Pourquoi n'utilisez-vous pas SimpleXML? Pour générer une sortie XML valide à partir d'un tableau PHP, vous pouvez consulter la documentation officielle PHP sur ceci: http://php.net/manual/en/book.simplexml.php Vérifiez simplement les deux premiers exemples qui vous aideront à générer un fichier XML valide et à convertir une chaîne XML en un tableau associatif.