Création d'un fichier .XML

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Création d'un fichier .XML

par Cyrano » 29 mai 2007, 23:24

Ok, tu sais où cliquer maintenant ? ;)

[Edit]Ok, tu étais en train de cliquer pendant que j'écrivais ceci[/Edit]

par dunbar » 29 mai 2007, 23:23

Et bien oui absolument et j'ai même compris du premier coup :wink:

Merci

par Cyrano » 29 mai 2007, 23:21

Tout est dans l'opérateur : "=" ou ".="

-1- AVANT la boucle : tu crée le début de ton fichier : cette partie ne doit pas être répétée à chaque tour :
$xml  = '<?xml version="1.0" encoding="ISO-8859-1"?>'."\r\n";
$xml .= '  <playlist>'."\r\n"; 
-2- On ajoute le contenu du fichier selon le contenu récupéré dans une boucle : là, on ajoute juste les lignes, mais ni le début du fichier (déjà prêt), ni la fin puisque le contenu n'est pas encore complet :
while(false != ($row = mysql_fetch_array($result)))
{
    $xml .= '     <video url="'.$row['adr_video'].'" Auteur ="'.$row['auteur'].'" Titre ="'.$row['titre'].'">'."\r\n";
}
On a utilisé le ".=" qui concatène chaque nouvelle ligne aux précédentes;

-3- La boucle est terminée, on ajoute la fermeture du fichier
$xml .= '  </playlist>'."\r\n";
Maintenant notre fichier est complet, on peut l'écrire.

Est-ce que c'est plus clair comme ça ?

par dunbar » 29 mai 2007, 23:14

AS-tu compris la raison de l'erreur au moins ? ;)
Un corrigé, c'est intéresssant si tu en apprends quelque chose et que tu ne feras plus la même, sinon, n'hésite pas trop à demander des précisions.

Sinon, n'oublie pas le tag [Résolu]
Et bien pour être franc, à par que tu fait la boucle ailleur que moi je suis pas certain d'avoir compris
et une chose aussi je dois faire ceci pour que cela fonctionne
toi.
$xml .= '     <video url="'.$row['adr_video'].'" Auteur ="'.$row['auteur'].'" Titre ="'.$row['titre'].'" >'."\r\n";
Moi
$xml .= '     <video url="'.$row['adr_video'].'" Auteur ="'.$row['auteur'].'" Titre ="'.$row['titre'].'" />'."\r\n";
Je ne sais pas encore pourquoi ?
Mais te connaissant l'explication ne va pas tarder :wink:

par Cyrano » 29 mai 2007, 23:08

AS-tu compris la raison de l'erreur au moins ? ;)
Un corrigé, c'est intéresssant si tu en apprends quelque chose et que tu ne feras plus la même, sinon, n'hésite pas trop à demander des précisions.

Sinon, n'oublie pas le tag [Résolu]

par dunbar » 29 mai 2007, 23:05

Oui effectivement comme d'habitude tu à raison merci .
:wink:

par Cyrano » 29 mai 2007, 23:00

J'ajoute que ça donnerait un fichier XML non conforme sans prendre une précaution. Proposition de corrigé :
<?php
//*****Affichage des résultats de la requete *******///
if($total) 
{
        //****creation du fichier playlist.xml*****//
    $xml  = '<?xml version="1.0" encoding="ISO-8859-1"?>'."\r\n";
    $xml .= '  <playlist>'."\r\n";
    while(false != ($row = mysql_fetch_array($result)))
    {
        $xml .= '     <video url="'.$row['adr_video'].'" Auteur ="'.$row['auteur'].'" Titre ="'.$row['titre'].'">'."\r\n";
    }
    $xml .= '  </playlist>'."\r\n";
    file_put_contents('playlist_video.xml', $xml) ;
}
?>

par dunbar » 29 mai 2007, 22:58

Parce qu'à chaque tour de la boucle while(), la variable $xml est ré-initialisée tout simplement
Le problème est que même si je fait ceci
$row = mysql_fetch_array($result);
Cela ne change rien |*()

par Cyrano » 29 mai 2007, 22:54

Parce qu'à chaque tour de la boucle while(), la variable $xml est ré-initialisée tout simplement

Création d'un fichier .XML

par dunbar » 29 mai 2007, 22:45

Bonsoir,
Je crée une application qui crée un fichier xml mais je n'arrive pas à écrire toutes les données de ma TABLE, il ne m'écrie que la première ligne de ma TABLE pourquoi :?:
<?php
//*****Affichage des résultats de la requete *******///
        if($total) {
        while($row = mysql_fetch_array($result)){

        echo '<pre>';
        print_r($row) ;
        echo'</pre>';
                                             //****creation du fichier playlist.xml*****//

        $xml  = '<?xml version="1.0" encoding="ISO-8859-1"?>'."\r\n";
        $xml .= '  <playlist>'."\r\n";
        $xml .= '     <video url="'.$row['adr_video'].'" Auteur ="'.$row['auteur'].'" Titre ="'.$row['titre'].'">'."\r\n";
        $xml .= '  </playlist>'."\r\n";
        file_put_contents('playlist_video.xml', $xml) ;
          }
          }
?>
D'avance merci