PHP使用XML嵌套foreach

时间:2019-02-10 13:32:48

标签: php xml

我正在使用foreach从xml文件中提取信息,并且一切都很好。当我尝试执行嵌套的foreach来使子级实例进一步向下时,我只会得到第一个实例。在这种情况下,这是我要列出的“时间”节点,但是正如我所说的,我得到的只是:

电影一 2019-02-10T14:30:00

我想列出电影一的所有内容。

这是xml的示例。

<Events>
<Event>
    <Name>Movie One</Name>
    <Times>
        <EventTime>
        <Time>2019-02-10T14:30:00</Time>
        <Capacity>100</Capacity>
        </EventTime>
    </Times> 
    <Times>
        <EventTime>
        <Time>2019-03-10T18:30:00</Time>
        <Capacity>100</Capacity>
        </EventTime>
    </Times> 
    <Times>
        <EventTime>
        <Time>2019-03-10T18:30:00</Time>
        <Capacity>100</Capacity>
        </EventTime>
    </Times> 
</Event>
</Events>

这是我在PHP中尝试的方法。

<?php
$xml=simplexml_load_file("myfile.xml") or die("Error: Not Working");
foreach($xml->children() as $cinemalist) {
    echo '<p>Event Name: ' . $cinemalist->Name . " </p> ";
      foreach($cinemalist->Times->children() as $alltimes) {
        $showtimes = $alltimes->EventTime->Time;
        echo '<span>' . $showtimes . " </span> ";  
    }
}
?>

已修复:在嵌套的foreach中添加了“时间”节点,现在可以使用... foreach($ cinemalist-> 时间-> children()为$ alltimes)

1 个答案:

答案 0 :(得分:0)

已修复:在嵌套的foreach中添加了“ Times”节点,现在可以使用... foreach($ cinemalist-> Times-> children()as $ alltimes)

我的最初XML不正确,@ splash58在他的正确演示中使用了。