嵌套的XML解析

时间:2015-01-05 12:05:08

标签: php xml

大家好我需要帮助解析具有多个嵌套属性的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表正确填充,但是League表填充了所有Sport数据的所有数据,组合起来,制作了不需要的重复项,而不仅仅是在THAT Sport节点中填充数据。我认为 current($ sport-> attributes() - > id)可以解决问题。

1 个答案:

答案 0 :(得分:1)

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();

}

你会在嵌套循环中迭代错误的命令。尝试上面的代码,所以你迭代一个运动的联赛