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 :

[SimpleXML] Fermeture d'un fichier XML


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 115
    Points : 60
    Points
    60
    Par défaut [SimpleXML] Fermeture d'un fichier XML
    Bonjour

    Je veux faire plusieur extraction d'un même fichier XML
    Lorsque celui-ci est utilisé dans un même fichier .php je peux faire plusieurs selection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $xml = simplexml_load_file('Code.xml');
    $select1 = $xml->xpath($query1);
    foreach{$select as $code1
    .....}
    $select2 = $xml->xpath($query2);
    foreach{$select2 as $code2
    .....}
    Tout fonctione correctement

    Le probleme intervient lorsque je veux appeller le même fichier XML à partir de fichier .php différent
    appel1.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    xml1 = simplexml_load_file('Code.xml');
    $select1 = $xml->xpath($query1);
    foreach{$select as $code1
    .....}
    appel2.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    xml2 = simplexml_load_file('Code.xml');
    $select2 = $xml->xpath($query2);  // Le programme n'execute pas ceci
    foreach{$select2 as $code2
    .....}
    Il y a t'il une commande qui doit fermer le fichier XML utilisé précédement ou bien l'erreur vient'elle d'ailleur

    Merci

    Windows XP
    PHP5.1
    Apache2.0

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    comment se passent tes 2 appels ?
    page1 puis ensuite page2 ?
    le traitement de la premiere est il fini quand tu commences le deuxième ?
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 115
    Points : 60
    Points
    60
    Par défaut
    Le but est d'afficher en plusieurs pages des choix successifs (arbre de selection)
    Lors du premier traitement j'affiche un formulaire avec des checkbox en fonction d'un premier niveau de paramètre extrait du fichier XML (pré-selection)
    Lors de la validation j'envoie les paramètres des checkbox selectionnées par l'utilisateur avec Get.
    Je veux afficher de nouvelles checkbox pour que l'utilisateur puisse affiner la selection mais le programme bloque sur la ligne
    $select2 = $xml->xpath($query2);
    Si j'appelle chaque fichier indépendament les uns des autres ils fonctionnent donc le code n'est pas en cause. C'est l'enchainement qui pose problème

    Merci

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    c'est bizarre car j'utilise simplexml et ça m'arrive douvrir le même fichier dans des pages différentes sans avoir ce problème.

    Peut etre devrais tu mettre la ressource xml en session et le récupérer ?
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    Je me permet de faire remonter ce sujet parce que j'ai le même tuype de problème...
    J'ouvre sans problème mon fichier xml... Le problème c'est que j'ai besoin d'en ouvrir plusieurs successivement (cela peut être dans des pages différentes, y a pas de soucis).
    Lorsque j'essaye d'ouvrir un seconfd fichier, j'ai systématiquement le même message d'erreur (que je sois dans la même page ou non) :

    XML declaration allowed only at the start of the document in c:\...

    Est-ce quelqu'un peut m'aider à résoudre ce problème ?

  6. #6
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ah ça c'est autre chose,
    c'est ton prologue xml apparement qui lui plait pas
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    euh c'est à dire ?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    euh en fait, j'ai plus ou moins compris...
    Est-ce que je peux changer cela, sans toucher au fichier xml ? ça m'arrangerait parce que je n'ai pas accès à ces fichiers

  9. #9
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ben en fait on dirais que c'est le <?xml version="1.0"?> qui pose problème !

    Que fais tu de ces fichiers ?
    Tu les lit comment ?
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    En fait, c'est des fils rss. Je dois en afficher plusieurs sur une même page web. Il s'agit de fichiers distants, donc je peux pas les modifier (pour l'instant les fichiers xml sont des exemples enregistrés sur mon ordi)

    Je les traite comme ceci :

    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
    <?
    if($xml = simplexml_load_file("test.xml")) {      
       $xml = $xml->channel;
     
         foreach($xml->item as $item) {
     
          $titre = $item->title;
          $url = $item->link;
     
            echo "<li>
                <A target='_blank' href='".$url."'>".utf8_decode($titre)."</A>
             </li>";
       }
       echo "</ul>";
    }
    ?>

  11. #11
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    dans ce que tu affiches, tu met le prologue xml ?
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    ben non...

  13. #13
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    peux tu me montrer le source généré d'une page ou tu as l'erreur s il te plait
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    <html>
    <br />
    <b>Warning</b>: simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]: adbs.xml:1: parser error : XML declaration allowed only at the start of the document in <b>c:\program files\easyphp1-8\www\test\adbs.php</b> on line <b>4</b><br />
    <br />
    <b>Warning</b>: simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]: &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt; in <b>c:\program files\easyphp1-8\www\test\adbs.php</b> on line <b>4</b><br />
    <br />
    <b>Warning</b>: simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]: ^ in <b>c:\program files\easyphp1-8\www\test\adbs.php</b> on line <b>4</b><br />
    <br />
    <b>Warning</b>: simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]: adbs.xml:2: parser error : Start tag expected, '&lt;' not found in <b>c:\program files\easyphp1-8\www\test\adbs.php</b> on line <b>4</b><br />
    <br />
    <b>Warning</b>: simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]: - in <b>c:\program files\easyphp1-8\www\test\adbs.php</b> on line <b>4</b><br />
    <br />
    <b>Warning</b>: simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]: ^ in <b>c:\program files\easyphp1-8\www\test\adbs.php</b> on line <b>4</b><br />

    </html>

  15. #15
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ok et abs1 c est le premier ou le deuxième fichier ?

    montre moi le contenu de ce fichier xml aussi stp
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    c'est le second fichier...
    le fichier est là :
    http://www.adbs.fr/site/adbs.rss

    Merci pour ton aide !!!

  17. #17
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    franchement je vois pas trop pourquoi il fait ça !!!
    on dirais qu'il met en cache les documents

    bon on va debugger :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    libxml_use_internal_errors(true);
     
     
    $doc = simplexml_load_file("tonfichier.xml");
    $xml = explode("\n", file_get_contents("tonfichier.xml"));
     
    //ici tu met ton code
     
    if (!$doc) {
       $errors = libxml_get_errors();
     
       foreach ($errors as $error) {
           echo display_xml_error($error, $xml);
       }
     
       libxml_clear_errors();
    }
     
     
    function display_xml_error($error, $xml)
    {
       $return  = $xml[$error->line - 1] . "\n";
       $return .= str_repeat('-', $error->column) . "^\n";
     
       switch ($error->level) {
           case LIBXML_ERR_WARNING:
               $return .= "Warning $error->code: ";
               break;
             case LIBXML_ERR_ERROR:
               $return .= "Error $error->code: ";
               break;
           case LIBXML_ERR_FATAL:
               $return .= "Fatal Error $error->code: ";
               break;
       }
     
       $return .= trim($error->message) .
                   "\n  Line: $error->line" .
                   "\n  Column: $error->column";
     
       if ($error->file) {
           $return .= "\n  File: $error->file";
       }
     
       return "$return\n\n--------------------------------------------\n\n";
    }
     
    ?>
    c'est pas de moi mais de la doc php
    ça t'affichera peut etre une erreur plus detaillée ?
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    ben maintenant ça m'affiche :

    Notice: Undefined variable: xml in c:\program files\easyphp1-8\www\test\alors.php on line 10
    ^ Fatal Error 64: XML declaration allowed only at the start of the document Line: 1 Column: 0 File: adbs.xml

    Notice: Undefined variable: xml in c:\program files\easyphp1-8\www\test\alors.php on line 10
    ^ Fatal Error 4: Start tag expected, '<' not found Line: 2 Column: 0 File: adbs.xml

    les erreurs viennent donc bien de mon fichier xml...
    J'arrive pas à l'afficher sans problème dans mon navigateur quand le fichier est en local... Pourtant il fonctionne nickel à distance (cf. l'url que je t'ai donné toute à l'heure)... Peut-être que je n'aurais plus ce problème si j'utilisais le fichier en ligne mais le hic c'est que, pour l'instant, le serveur ici me bloque cet accès
    M'enfin, merci pour ton aide !!!
    Je vais attendre de voir si cela va mieux quand j'aurai accès au fichier à distance...

Discussions similaires

  1. [SimpleXML] Lecture d'un fichier xml distant
    Par Palca dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/02/2008, 15h26
  2. [SimpleXML] Compte utilisateur en fichier xml
    Par Pierrick584 dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 07/08/2007, 21h54
  3. [SimpleXML] Exploitation D'un Fichier Xml
    Par django76 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 19/05/2007, 13h00
  4. [SimpleXML] requête sur un fichier xml
    Par ANISSS dans le forum Bibliothèques et frameworks
    Réponses: 17
    Dernier message: 03/05/2007, 09h21
  5. [SimpleXML] lecture d'un fichier xml
    Par Raideman dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 12/04/2007, 18h03

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