IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[XML] Fonction Scan enregistrement XML


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Par défaut [XML] Fonction Scan enregistrement XML
    Bonjour,

    j'aimerai enregistrer cette function 'scan' en fichier XML.
    j'ai essayai de passer les echo en variable '$xml' mais l'imbrication de la fonction scan me pose probleme pour l'affichage et l'enregistrement

    voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?php
    header("Content-Type: text/xml");
    echo '<?xml version="1.0" encoding="ISO-8859-1"?>';
    echo '<doc>';
     
    function scan($rep)
      {
       $dir = opendir($rep); 
       if($dir) 
       {
       while (false !== ($f = readdir($dir)))
       {
       if(is_file($rep.$f)) 
       { 
     
       echo '<fichiers>'.$f.'</fichiers>'; 
       }
       if(is_dir($rep.$f) && $f!=".." && $f!=".")
       {
       echo '<'.$f.'>';
       echo '<nom>'.$f.'</nom>'; 
       $new_dir=realpath($rep.$f);
       scan("$new_dir/"); 
       echo '</'.$f.'>';
       } 
       } 
       }
     }
    echo '<themes>';
    scan("../upload/");
    echo '</themes>';
    echo '</doc>';
     
    //echo $xml;
    //$fichierXML = "galerie.xml";
    //$openfichier = fopen($fichierXML,"r+");
    //fwrite($openfichier,$xml); 
    //fclose($openfichier); 
    ?>

    le resultats en echo:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <?xml version="1.0" encoding="ISO-8859-1" ?> 
    - <doc>
    - <themes>
    - <Architecture-Urbanisme>
      <nom>Architecture-Urbanisme</nom> 
    + <DSC_0729>
    + <DSC_1762>
    + <DSC_1861>
       </Architecture-Urbanisme>
    + <Arts-Culture>
    + <Creation-visuelle>
    + <Evenements-Dates>
      </themes>
      </doc>
    j'aimerai avoir le meme résultat et pouvoir l'enregistrer.
    Merci pour votre aide.
    Cordialment Frédéric

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Par défaut
    j'ai testé plusieur manipulation pour mettre mes valeurs en variable $xml mais a chaque tentavive une erreur survient :

    Un seul élément de niveau supérieur est autorisé dans un document XML. Erreur de traitement de la ressource

    vraiment je pense que ce n'est pas tres compliqué mais je ne comprend pas
    merci a celui qui pourras m'aider

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2007
    Messages : 38
    Par défaut
    Essaye d'enregistrer ton fichier au format txt pour tester. Teste aussi si il ya des valeurs interdites a l'interieur de tes element. XmlWriter ne fermera pas la div si il ya un element interdit a l'interieur d'une chaine.
    Par la suite il pourra pas te l'enregisterer au format xml.

    Bon courage

    NamNam

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <?php
    $fichierXML = "galerie.xml";
    header("Content-Type: text/xml");
    $xml = '<?xml version="1.0" encoding="ISO-8859-1"?>';
    $xml .= '<themes>';
     
    function scan($rep)
      {
     
       $dir = opendir($rep); 
       if($dir) 
       {
       while (false !== ($f = readdir($dir)))
       {
       if(is_file($rep.$f)) 
       { 
       $xml .= '<fichiers>'.$f.'</fichiers>'; 
       }
       if(is_dir($rep.$f) && $f!=".." && $f!=".")
       {
      $xml .= '<'.$f.'>';
      $xml .= '<nom>'.$f.'</nom>'; 
      $new_dir=realpath($rep.$f);
      scan("$new_dir/"); 
      $xml .= '</'.$f.'>';
       } 
       } 
       }
     }
    scan("../upload/");
    $xml .= '</themes>';
    closedir($dir);
     
    echo $xml;
    $openfichier = fopen($fichierXML,"r+");
    fwrite($openfichier,$xml); 
    fclose($openfichier); 
    ?>
    toujours la meme erreur.
    pourtant tt mes éléments sont bien fermé
    si je remplace mes valeur $xml par echo tout se passe correctement
    je trouve pas l'erreur

  5. #5
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2007
    Messages : 38
    Par défaut
    Fais tu un parse pour les caractères interdits en xml ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Par défaut
    non namnam1981
    mais en echo tout fonctionne ?....

  7. #7
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2007
    Messages : 38
    Par défaut
    je te l'accorde que lors de ton echo tout va bien, mais j'avais le même problème: tt ce que j'ai fais ce que j'ai enregistré mon fichier xml sous format txt pour le test : et j'avais rencontrer des caracteres interdits a l'interieur de mon fichier. Le parseur xml les interpretent comme caracteres a significations speciales et pas comme du texte.

    Pour cela il arrive pas a charger ou a enregistrer correctement sous format xml.

    Voila !!!

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/11/2008, 17h55
  2. [MySQL] Récupérer une variable d'une fonction et enregistrement dans une base de données
    Par Mikke dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/03/2008, 17h02
  3. Réponses: 4
    Dernier message: 27/07/2007, 10h51
  4. Fonction d'enregistrement d'image
    Par jojoquiasa dans le forum Langage
    Réponses: 3
    Dernier message: 10/07/2007, 16h27
  5. créer fonction d'enregistrement
    Par rodgeurette dans le forum MFC
    Réponses: 7
    Dernier message: 09/07/2007, 15h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo