Finding the structure of a huge xml file with php -


i have 52gb xml file need insert database don't know structure. i've been searching on how iterate xmlreader seems have know structure this. if next() more 1 time goes end of file , if 1 time gives me first node data , can't see because of memory issues.

    $reader = new xmlreader();     $reader->open('d:\_work\esstatistiklistemodtag.xml');     $reader->read();     $reader->next();     var_dump($reader->expand()); 

this tried , tried different functions of xmlreader no success. how can this? or advice.

that can not taken take on both parts

this simple code may understand structure. set path array empty , in output top level, foe example, . set in array path , watch next level - , . if not public transportation :), write 'car' array , watch next level...

$xml = new xmlreader();  $xml->open(filename); $path = array('root', 'car'...);   $pp = array(); $selected = 0;           // requied fragment $l = 0;                  // current level $level = count($path);   // level watch  while ($xml->read()) {      if ($xml->nodetype == xmlreader::element) {         // element start         if ($l < $level) array_push($pp, $xml->name);         if (($l == ($level-1) || !$level) && $path == $pp) { echo implode(', ', $pp)."<br>"; $selected = 1; }         if (($l == $level) && ($selected )) echo "&nbsp;&nbsp;&nbsp;".$xml->name."<br>";         $l++;      }     else if($xml->nodetype == xmlreader::end_element) {         // element end         if ($selected && ($l == $level)) {             $selected = 0;              // may write die here if dont wait repeats of "path"         }         $l--;         if ($l < $level) array_pop($pp);            }  } 

Comments