XML : Iterating over an XML file in PHP

I'm using Laravel to parse an XML file and store it into the DB. Now, it's probably some sort of a stupid mistake I can't put my finger on, but I would really appreciate if someone could check the code and the weird results I'm getting.

The XML has a deep and complex structure, here's a little piece from that's bugging me:

enter image description here

I'm dumping the $nizXMLsp in the end to see what's inside the array of objects:

  public function upload(){            $dom = new DomDocument();          $nizBaza = DB::table('offers')->orderBy('id', 'DESC')->first();          $nizXML = array();          $objekat = new stdClass();          $dom->load("storage/X_Lista.xml");          $domXpath = new DomXPath($dom);          $upit = $domXpath->query('//offer');          foreach($upit as $of){              $objekat->Time = $of->getAttribute('Time');              $objekat->Date = $of->getAttribute('Date');              $objekat->betRound = $of->getAttribute('betRound');              $objekat->timestamp = $of->getAttribute('timestamp');              array_push($nizXML, $objekat);          }                if(is_null($nizBaza) or $nizBaza->id != $nizXML[0]->betRound) {              $kolo = new Offer();              $kolo->id = $objekat->betRound;              $kolo->ts = $objekat->Date . " " . $objekat->Time;              $kolo->posix = $objekat->timestamp;              $kolo->save();              //              $nizBaza = DB::table('sportovi')->get();              $nizXMLsp = array(); $objekat_sp = new stdClass();              foreach($dom->getElementsByTagName('sport') as $k=>$v){                  $objekat_sp->id = $v->getAttribute('id');                  $objekat_sp->name = $v->getAttribute('name');                  $objekat_sp->betRound = $v->parentNode->getAttribute('betRound');                  $nizXMLsp[$k] = $objekat_sp;              }          }          elseif($nizBaza->id == $nizXML[0]->betRound){              echo 'break1';              exit;          }          else {              echo 'break2';              exit;          }            return var_dump($nizXMLsp);        }    

Now, what I see in the end is this:

enter image description here

instead of 4 objects with different sets of data, I get 4 objects with same set of data (all of the data comes from the last node). What could it be?

No comments:

Post a Comment