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] probleme parcourir fichier xml


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 158
    Points : 75
    Points
    75
    Par défaut [SimpleXML] probleme parcourir fichier xml
    bonjour! j'avais vu un exemple de code sur ce forum qui parcourait un fichier xml.
    j'ai modifié le code et ça marche sur ma machine mais lorsque je teste sur mon serveur ça ne marche pas.
    exemple de mon xml:
    Code XML : 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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <ServeurMySQL Nom="localhost">
    <Date DateModif="02-12-2008"/>
       <BaseDeDonnee nom='daobruno'>
          <Table nom="connectes">
            <Champ nom="ip" type="varchar(15)" null="NO" cle="" valeurDefaut="" autoincrementation="NO"/>
             <Champ nom="timestamp" type="bigint(8)" null="YES" cle="" valeurDefaut="88" autoincrementation="NO"/>
    	  </Table>
          <Table nom="test">
             <Champ nom="id" type="int(11)" null="NO" cle="PRI" valeurDefaut="" autoincrementation="YES"/>
             <Champ nom="a" type="int(8)" null="YES" cle="" valeurDefaut="8" autoincrementation="NO"/>
             <Champ nom="azer" type="varchar(5)" null="NO" cle="" valeurDefaut="a" autoincrementation="NO"/>
             <Champ nom="testunique" type="varchar(6)" null="NO" cle="UNI" valeurDefaut="" autoincrementation="NO"/>
             <Champ nom="kjh" type="varchar(7)" null="NO" cle="MUL" valeurDefaut="" autoincrementation="NO"/>
          </Table>
       </BaseDeDonnee>
    </ServeurMySQL>

    en fait lorsque la fonction croise "/" il arrête de lire le fichier. ici il arrêtera de lire le fichier a partir de la balise <Date.. />
    je ne sais vraimemt pas pourquoi. et pourtant il marche sur moi ma machine
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <?php
    function lire_fichier_xml()
      {
        // on charge le fichier xml
       $xml = simplexml_load_file("export_my_sql_xml2.xml");
      // On appelle la fonction récursive
      recursivite($xml);
     }
     
    /***************************************/
    function recursivite($racine) {
    	// Pour chaque item, on récupere le nom et l'objet SimpleXML de la balise
    	foreach($racine as  $nom=>$elem) {
    	// On vérifie qu'il y a un noeud enfant
    	//echo $racine;
    	if(trim($elem) == "") {
    	// si oui...
    	$enfants = $elem->children();
    	// on récupere les attributs s'ils sont présents
    	$attributs = $elem->attributes();
    	$NomTable=$attributs;
    	if(trim($attributs) != "") 
    	{
    		 $count=1;
    		 if ($nom=="Table")
    	{
     
    	 $GLOBALS['nom_table']=$attributs;
    	}
    	  foreach($attributs as $index=>$contenu) {
    		if ($nom=="Table")
    		     {
    		       ajoute_table('localhost','root','','bdtest',$contenu);
     
    			 }
          $description[$count]=$contenu;
           $count++;
    				}
    			}
    			if (isset($description[2]) && $description[2]!="")
    			    { 
    				  $info_champ = array($description[1],$description[2],$description[3],$description[4],$description[5],$description[6]); 
    				   $nom_table_param2=$GLOBALS['nom_table'];
    				  ajoute_champ('localhost','root','','bdtest',$nom_table_param2,$info_champ);
    				  modifie_attribut('localhost','root','','bdtest',$nom_table_param2,$info_champ);
    			    }
    			// comme on a un enfant, on réappelle la fonction 
    			recursivite($enfants);
    		} 
    	}
    }
     
    ?>

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Il se peut que ton PHP, ne soit pas configurer pareils, sur ta machine et chez ton prestataire.

    Fais un echo de ta commande SQL, sur les deux environnement et compare pour voir si tu n'a pas des différences, je pense aux '/'.

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 158
    Points : 75
    Points
    75
    Par défaut
    merci pour ta reponse, je fais echo de quel commande SQL? et je m'y prend comment?

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Par exemple cette fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ajoute_champ('localhost','root','','bdtest',$nom_table_param2,$info_champ);
    Ressemble à une fonction, utilisant une base de données, tu lui passe des paramètres, dans cette fonction, tu dois avoir quelque chose comme

    c'est le echo de cet $sql, qu'il faut comparer !

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 158
    Points : 75
    Points
    75
    Par défaut
    ah je vois! le problème est que cette partie n'est jamais executée.
    cette partie s'execute lorsqu'on arrive à une balise <table ..>.
    alors que la lecture de mon fichier s'arrete à la balise <Date..> qui se trouve au début.

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 158
    Points : 75
    Points
    75
    Par défaut
    finalement j'ai abandonné le SimpleXML pour passer à XMLReader et ça marche .
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SimpleXML] Traitement de fichier XML
    Par RasDataMan dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/11/2007, 11h44
  2. [SimpleXML] Analyser un fichier XML avec PHP
    Par Someone86 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 10/08/2007, 09h43
  3. Probleme lecture Fichier XML à partir table MySQM
    Par inzagi dans le forum XQUERY/SGBD
    Réponses: 2
    Dernier message: 20/07/2007, 21h59
  4. [SimpleXML] Lire un fichier XML
    Par ChriGoLioNaDor dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 07/02/2007, 16h48
  5. probleme ouverture fichier XML
    Par willoi dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 28/12/2006, 16h14

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