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

Résolu
astrocybernaute Messages postés 80 Date d'inscription   Statut Membre Dernière intervention   -  
astrocybernaute Messages postés 80 Date d'inscription   Statut Membre Dernière intervention   -
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




A voir également:

3 réponses

Flachy Joe Messages postés 2102 Date d'inscription   Statut Membre Dernière intervention   261
 
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
astrocybernaute Messages postés 80 Date d'inscription   Statut Membre Dernière intervention   10
 
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
astrocybernaute Messages postés 80 Date d'inscription   Statut Membre Dernière intervention   10
 
ca marche très bien jusqu'à présent merci infiniment tu m'a tellement aidé..merci encore Joe (¤_¤)
0
Flachy Joe Messages postés 2102 Date d'inscription   Statut Membre Dernière intervention   261
 
De rien, pense à mettre le statut Résolu...
0
astrocybernaute Messages postés 80 Date d'inscription   Statut Membre Dernière intervention   10
 
dsl je le repasse en non résolu car j'ai une autre question
0
astrocybernaute Messages postés 80 Date d'inscription   Statut Membre Dernière intervention   10
 
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
astrocybernaute Messages postés 80 Date d'inscription   Statut Membre Dernière intervention   10
 
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
astrocybernaute Messages postés 80 Date d'inscription   Statut Membre Dernière intervention   10
 
0