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:
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:
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