Привет, ребята, мне нужна помощь в анализе XML с несколькими вложенными атрибутами. Небольшая часть XML файла находится здесь http://pastebin.com/bswFcdeX Мне нужно разобрать XML и сохранить каждый узел в DB. Я использую Laravel. У меня есть это, в настоящее время:
foreach ($lista->sport as $sport){
foreach ($lista->sport->league as $liga){
$mLiga = new League();
$mLiga->liga_id = $liga->attributes()->leagueID;
$mLiga->liga = $liga->attributes()->competition;
$mLiga->sport_id = current($sport->attributes()->id);
$mLiga->save();
}
$mSport = new Sport();
$mSport->id = $sport->attributes()->id;
$mSport->sport_eng = $sport->attributes()->name;
$mSport->save();
}
Таблица "Спорт" заполняется правильно, но таблица "Лига" заполняет все данные всеми данными Sport, комбинируя их, делая нежелательные дубликаты, а не просто заполняя данные в узле THAT Sport. Я думал, что текущий ($sport-> attributes() → id) сделает трюк.
foreach ($lista->sport as $sport){
foreach ($sport->league as $liga){
$mLiga = new League();
$mLiga->liga_id = $liga->attributes()->leagueID;
$mLiga->liga = $liga->attributes()->competition;
$mLiga->sport_id = current($sport->attributes()->id);
$mLiga->save();
}
$mSport = new Sport();
$mSport->id = $sport->attributes()->id;
$mSport->sport_eng = $sport->attributes()->name;
$mSport->save();
}
вы будете перебирать в вложенном цикле неправильные записи. попробуйте верхний код, поэтому вы повторяете лиги одного вида спорта