Le code ci-dessous traite un fichier XML qui ne contient pas d'attributs. Code créé à partir de cette page : http://bookofzeus.com/articles/convert-simplexml-object-into-php-array/
Le fichier initial ressemble à ceci :
<vals><val><valUnique>toto</valUnique><valUnique2>titi</valUnique2><sousVal><sousValUnique>a</sousValUnique><sousValUnique2>b</sousValUnique2></sousVal><sousVal><sousValUnique>c</sousValUnique><sousValUnique2>d</sousValUnique2></sousVal></val><val>(...)</val></vals>Le résultat sera le suivant :
array [0] ['val'] ['valUnique']                  ['valUnique2']                  [0] ['sousVal']['sousValUnique']                                 ['sousValUnique2']                  [1] ['sousVal']['sousValUnique']                                 ['sousValUnique2']      [1] ['val'] (...)class Xml {       /**     * Fonction permettant de charger un fichier xml, et de récupérer le     * tableau correspondant     * Les objets imbriqués sont stockés dans un tableau de type :     * array [0] ['val'] ['valUnique']     *                   ['valUnique2']     *                   [0] ['sousVal']['sousValUnique']     *                                  ['sousValUnique2']     *                   [1] ['sousVal']['sousValUnique']     *                                  ['sousValUnique2']     *       [1] ['val'] (...)     * La fonction ne gère pas les attributs     *     * @param string $fileName : adresse du fichier à charger               * @return array     */    function loadFile($fileName) {        $dataXml = simplexml_load_file ( $fileName );           $data = $this->xml2array ( $dataXml );        return $data;    }    /**     *     * @param SimpleXMLElement $xml     * @return array     */    function xml2array($xml) {        $res = array ();        $i = 0;        foreach ( $xml as $kelement => $element ) {            $key = $element->getName ();            $e = get_object_vars ( $element );            if (! empty ( $e )) {                if ($element instanceof SimpleXMLElement) {                    $res [$i] [$key] = $this->xml2array ( $element );                    $i ++;                } else {                    $res [$key] = $e;                }            } else                $res [$key] = trim ( $element );        }        return $res;    }}