[PHP-XML] je cherche à lire un fichier xml !

Résolu
Bonjour,

voila je cherche a lire les donnés d'un fichier XML pour pouvoir les stocker dans une bdd
est ce que vous connaissez une librairie qui peut faire ca et que vous pouvez me guidez pour réussir ma mission svp?
ca fait deja une semaine que j'aurai du terminer cette étape :((
j'ai deja trouvé une mais je n'arribve pas à la faire marcher j'ai bcp d'erreur (http://ww1.insicdesigns.com
j'ai trouvé une autre mais c compliqué !! (https://www.php.net/manual/en/book.xmlreader.php et https://www.php.net/simplexml

je n'ai pas cp de temps et je bloque vrm..aidez moi
pas forcément sur ceux que je vous ai donné..n'importe quoi qui fait l'affaire je le prend

un grand merci d'avance



--

"Le bonheur est quelque chose qui se multiplie quand il se divise." Paulo Coelho

3 réponses

  1. Salut,
    SimpleXML est très facile à utiliser, regarde la page d'exemple : https://www.php.net/manual/fr/simplexml.examples-basic.php

    Ça converti l'arbre XML en objet, tu peux ensuite t'inspirer de ce genre de code https://phpro.org/examples/Convert-Object-To-Array-With-PHP.html pour obtenir un tableau.

    Bon courage.
    1
    1. d'accord merci je vais voir ca aussi mais si c le meme que celui que j'ai vu j'ai eu bcp de prob
      0
    2. ca marche très bien jusqu'à présent merci infiniment tu m'a tellement aidé..merci encore Joe (¤_¤)
      0
    3. De rien, pense à mettre le statut Résolu...
      0
    4. dsl je le repasse en non résolu car j'ai une autre question
      0
  2. Bonjour tout le monde :)

    voila je suis arrivée à faire ce que je voulais et donc je veux le partager avec vous
    n'hésitez pas à me dire ce que vous en pensez

    voila, mon code sert à lires n'importe quel fichier xml (ne contenant pas de namespace) et de l'afficher avec hiérarchie

    Il y a quatre niveaux, si vous avez besoin de plus vous pouvez l'ajouter de la même façon, sinon si vous avez besoin de moins vous pouvez soit le supprimer ou le laisser ca ne gênera pas votre résultat

    
    $x='xml/file.xml';
    $xml = simplexml_load_file($x);
    	
    echo '<h2> Showing '.$xml->count().' items </h2>';
    			
    ////echo all children+attributes from "file.xml" with hierarchy 
    
    foreach ($xml->children() as $m) 
    { 
       printf("<h3>%s has got %d children.</h3>\n", $m['name'], $m->count());
    		
    	//first level
        	echo '<li><b>' .$m->getName().' </b>: '. $m.'</li><ul><ul>';
    		if ($t=$m->attributes())  
    				foreach($m->attributes() as $a => $b)
     				 {
       					 echo '<li>  '.$a,' = ',$b,"</li>";
    					
    				 }
    				 
    				 echo '</ul></ul>';
    		
    		//second level		 
    		foreach ($m->children() as $mv) 
    		{
        		echo ' <ul><li> <b> ' .$mv->getName();
                    echo '</b>  :  '. $mv.'</li><ul>';
    		 
    			if ($mv->attributes())  
    				foreach($mv->attributes() as $a => $b)
     				 {
       					 echo '<li>  '.$a,' = ',$b,"</li>";
    				 }
    			echo '</ul>';
    				 
    			
    		   //third level	 
    		   foreach ($mv->children() as $mvv) 
    			{
    			echo '<ul> <li><b>' . $mvv->getName();
                            echo '</b>  :  '.$mvv.'</li><ul>';
    				
    				if ($mvv->attributes())  
    				 foreach($mvv->attributes() as $a => $b)
    				  {
    						 
    					 echo '<li> '.$a,' = ',$b,"</li>";
    						
    				  }
    				 echo '</ul></ul>';
    				 
    				//fourth level 
    				foreach ($mvv->children() as $v) 
    				{
        				echo ' <ul><li><b>' . $v->getName();
                                    echo '</b> :  '.$v.'</li><ul>';
    				 if ($v->attributes())  
    				   foreach($v->attributes() as $a => $b)
     				 	  {
       					    echo '<li> '.$a,' = ',$b,"</li>";
    				 	  }
    				 	echo '</ul></ul>';
    				}//4
    				
    			}//3
    		 echo '</ul></ul>';
    		 
    		}//2
       
    	}//end foreach 1
    	
    	
      
    
    


    J'espère que ca va aider d'autres personnes

    Wissal
    1
    1. Par contre maintenant j'ai un autre problème , c'est quand le fichier XML contient des namespaces..ca ne marche plus..et je ne sais pas comment le faire
      est ce que qlq peut m'y aider svp
      merci
      1

    Discussions similaires

    question pix mot caché

    7 réponses