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.

Reply via email to