嵌套 XML 解析

Nested XML parsing

大家好,我需要帮助来解析具有多个嵌套属性的 XML。 XML 文件的一小部分在这里 http://pastebin.com/bswFcdeX 我需要解析 XML 并将每个节点保存到数据库。我正在使用 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 table 正在正确填充,但 League table 使用所有 Sport 数据填充所有数据,合并,产生不需要的重复,而不是仅在 THAT Sport 节点中填充数据。我认为 current($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();

}

您会在嵌套循环中迭代错误的条目。试试上面的代码,这样你就可以遍历一项运动的所有联赛