SimpleXML Object vers Array ?

SimpleXML Object vers Array ? - PHP - Programmation

Marsh Posté le 27-10-2008 à 09:41:52    

Salut,
 
J'ai plusieurs sources de données et je ne sais pas sur lesquelles je travaille.
Une source est un XML et l'autre un tableau.
 
Pour être consistant, il faut que je transforme mon XML en Array.
Ca à l'air simple mais je n'y arrive pas.
De plus, il n'y a pas d'attribut dans l'XML donc c'est encore plus facile.
 
Quelqu'un a déja fait ça ?

Reply

Marsh Posté le 27-10-2008 à 09:41:52   

Reply

Marsh Posté le 27-10-2008 à 09:56:58    

Hum, lundi matin, fatigué
 

Code :
  1. protected function XmlAsArray()
  2.     {
  3.      $t1 = array();
  4.      $t2 = array();
  5.      foreach($this->xml->profil as $c=>$v){
  6.       foreach ($v as $cc=>$vv){
  7.        $t2[$cc]=(string)$vv;
  8.       }
  9.       array_push($t1,$t2);
  10.      }
  11.      return $t1;
  12.     }

Reply

Marsh Posté le 27-10-2008 à 22:24:34    

il y en as vraiment qui se prenne la tête pour rien :D
 
get_object_vars() est ton amis :D


---------------
Recette cookeo Recette de cuisine
Reply

Marsh Posté le 28-10-2008 à 08:42:36    

Ouais sauf que get_object_vars() n'est pas récursive et un SimpleXML object, c'est un objet d'objets d'objets.
Alors moi non plus je ne suis pas récursif mais je peux mettre autant de foreach que je veux, pas avec get_object_vars()
 
Mais si tu as une méthode récursive, je suis preneur.

Reply

Marsh Posté le 28-10-2008 à 09:38:27    

un truc de ce genre ?  
 

Code :
  1. function recusif($objet)
  2. {
  3.     if( !is_object( $objet ) )
  4.          return $objet ;
  5.     $tableau = array();
  6.     foreach($objet as $cle => $valeur )
  7.           $tableau[$cle] = recusif ( $valeur ) ;
  8.     return $tableau;
  9. }

Reply

Marsh Posté le 28-10-2008 à 10:40:42    

ouais ca devrait marcher pour des xml simples.
 
La pour la petite histoire, il a cette tête la :
 

Code :
  1. <root>
  2.   <profil>
  3.     <nick>tutu</nick>
  4.     <age>20</age>
  5.   </profil>
  6.   <profil>
  7.     <nick>ttoto</nick>
  8.     <age>30</age>
  9.   </profil>
  10. </root>


 
Et ceci génère un objet d'array d'objet donc on bloque vite.
Enfin bon, c'est pas grave c'est tordu

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed