And here it's my code :) If you need some explanation feel free to ask :) You can test it on the first test file I gave you when I open the thread.
At the moment that works only on one file, I have to change it a bit to make it works on repertory with lots of xml files, See you later guys :-) $repertory = "0.xml"; $BaseObject = simplexml_load_file($repertory); $Prefix = $BaseObject->getName(); $Final = recu($BaseObject); format($Final); function OpenFile() { if (!file_exists("FinalParsin.xml")) $fd = fopen("FinalParsing.xml", "w+"); else $fd = fopen("FinalParsing.xml", "x"); if ($fd < 0) { echo "Fatal Error: Couldn't Create and open the tempory file.\n"; exit -1; } return $fd; } function Xfwrite($fd, $String) { if (!fwrite($fd, $String)) { echo "Fatal Error: Couldn't write in the tompory file.\n"; exit -1; } return ; } function format($String) { $fd = OpenFile(); Xfwrite($fd, "<add>\n<doc>\n"); $String = split("\n", $String); for ($i = 0; $String[$i]; ++$i) { $Parsing = split("=", $String[$i]); Xfwrite($fd, "\t".'<field name="'.$Parsing[0].'">'.$Parsing[1].'<field>'."\n"); } Xfwrite($fd, "</doc>\n</add>"); fclose($fd); } function recu($Object, $Prefix = null) { if ($Prefix === null) $Prefix = $Object->getName(); else $Prefix .= '::'.$Object->getName(); if (count($Object->Children()) < 1) return $Prefix.'='.str_replace("\n", " ", $Object)."\n"; foreach($Object->Children() as $Child) $Save .= recu($Child, $Prefix); return $Save; } -- Saeli Mathieu.