PHP – Convertire XML in Object

Che meraviglia! Una vera perla!

Stavo cercando di creare una classe per la conversione di XML in oggetti php per rendere più semplice l’utilizzo e la ricerca quando si hanno delle strutture che contengono un gran numero di dati. Quando ho trovato un metodo favoloso, semplice ed efficacissimo!
Un grazie a Devrim che ha condiviso questa piccola chicca! Vediamola…

Creiamo il nostro xml

$xml = "<root>
  <node attribute='abc'>
    <text>abcdefg</text>
    <name>home</name>
  </node>
  <node>
    <text>1234</text>
    <name>cell</name>
  </node>
</root>";

A questo punto ricorriamo al nostro piccolo trucco:

$object = json_decode(json_encode(simplexml_load_string($xml))); 

Oplà! Il gioco è fatto!
Troppo semplice dite? Vediamo il risultato:

print_r($object);
stdClass Object (
  [node] => Array (
    [0] => stdClass Object (
      [@attributes] => stdClass Object (
        [attribute] => abc
      )
      [text] => abcdefg
      [name] => home
    )
    [1] => stdClass Object (
      [text] => 1234
      [name] => cell
    )
  )
)

E l’utilizzo sarà semplicemente:

echo $object->node[0]->{'@attributes'}->attribute; //abc
echo $object->node[1]->text; // 1234

Enjoy!



Ti è piaciuto l'articolo? Vota Ok oppure No. Grazie Mille!

Post Correlati:

Resta aggiornato abbonandoti al feed RSS 2.0. Puoi lasciare un commento oppure inviare un trackback dal tuo sito.

Lascia un Commento

XHTML: È possibile utilizzare questi marcatori: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>