XML - 具有相同名称的节点在PHP中只显示一次

时间:2015-09-11 14:08:34

标签: php xml

我用php解码我的xml有点问题:

我有一个xml文件,其中包含有关电影的详细信息,我需要做的是获取节点种子 - > torrent->质量并在我的php脚本中显示结果。现在我有一部分代码,它只显示了它找到的第一个品质。

(例如:我的电影“Poltergeist”是720p和1080p,但在我的剧本中它只显示720p并跳过1080p)

屏幕截图网站:enter image description here

截图xml:enter image description here

<link rel="stylesheet" type="text/css" href="css/style.css"> 
<?php



$xml = simplexml_load_file("https://yts.to/api/v2/list_movies.xml?limit=10");
$titolo = array();
$locandina = array();
$anno = array();
$durata = array();
$genere = array();
$qualita = array();

    $i = 0;
    foreach ($xml->data->movies->movie as $element) {
        foreach ($element->children() as $key => $val) {
            $chiave = $key;
            $valore = $val;
            if ($key == "title") {
                $titolo[] = $val;
            }
            if ($key == "medium_cover_image") {
                $locandina[] = $val;
            }
            if ($key == "year") {
                $anno[] = $val;
            }
            if ($key == "runtime") {
                $durata[] = $val;
            }
            if ($key == "genres") {

                for($g = 0; $g < count($xml->data->movies->movie[$i]->genres->genre); $g++) {
                        $genere[$i][] = $xml->data->movies->movie[$i]->genres->genre[$g];
                }
            }   

            $qualdef = $xml->data->movies->movie->torrents->torrent;

         foreach ($qualdef as $element) {
            foreach ($element->children() as $key => $val) {
             if ($key == "quality") {
                 $qualita[] = $val;
             }
            }   
         }  



        }
        $i++;
    }



   for ($i = 0; $i < count($titolo); $i++) {
        echo "<div class=totbox>";
        if (isset($locandina[$i])) {
            echo "<div class=box><img src=" . $locandina[$i] . "></div>";
        }
        echo "<div class=text><b>" . $titolo[$i] . "</b> - " . $anno[$i] . "</div>";
        foreach ($genere[$i] as $genResult) {
            echo "<div class=text><b>" . $genResult . "</b></div>";
        }
        echo "<div class=text><b> Qualita':" . $qualita[$i] . "</b></div>";
        echo "<div class=text><b> Durata:" . $durata[$i] . "</b></div>";
        echo "</div>";
    }


?>

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您似乎正在收集数据而没有任何问题,但是当您显示时,请使用 $ titolo 的索引,因此您不会浏览 $ qualita的每个元素数组。

所以试试这个:

echo "<div class=text><b> Qualita':" . implode(', ',$qualita) . "</b></div>";