2017-02-17 92 views
0
當天

我有日期的簡單的XML表格dates.xml加載XML文件。開始

<schedule> 
    <day> 
    <date>01.03.17</date> 
    <dayname>Thursday</dayname> 
    <htime1>2:00</htime1> 
    <htime2>3:00</htime2> 
    </day> 
    <day> 
    <date>02.03.17</date> 
    <dayname>Friday</dayname> 
    <htime1>1:00</htime1> 
    <htime2>4:00</htime2> 
    </day> 
    <day> 
    <date>03.03.17</date> 
    <dayname>Saturday</dayname> 
    <htime1>0:00</htime1> 
    <htime2>7:00</htime2> 
    </day> 

... 

</schedule> 

我要的未來10天的負載名單,從今天起當日開始。我找到了一種方法,通過使用simplexml_load來導入xml表。

<?php 
$xml=simplexml_load_file("dates.xml"); 
echo '<li>'; 
echo $xml->date . "<br>"; 
echo $xml->dayname . "<br>"; 
echo $xml->htime1 . "<br>"; 
echo $xml->htime2; 
echo '</li>'; 
?> 

是否可以開始一個循環,從目前日起?例如今天是三月二號。該名單應該是這樣的:

  • 17年2月3日 週五 1:00 4:00
  • 17年3月3日星期六 1:00 4:00
  • 04.03 0.17 週日 1:00 4:00
  • ...

    你有什麼想法,該怎麼做? 謝謝!

    回答

    1

    simplexml_load_file函數返回的值是SimpleXMLElement類型的對象。這個對象的這個屬性可以在循環中遍歷。例如,你應該能夠使用以下循環:

    for ($count = 0; $count < count($xml->schedule>day); $count++) { 
        $date = $xml->schedule->day[$count]['date']; 
        $dayname = $xml->schedule->day[$count]['dayname']; 
        $htime2 = $xml->schedule->day[$count]['htime1']; 
        $htime1 = $xml->schedule->day[$count]['htime2']; 
    
        echo '<li>'; 
        echo $date . "<br>"; 
        echo $dayname . "<br>"; 
        echo $htime1 . "<br>"; 
        echo $htime2; 
        echo '</li>'; 
    } 
    
    +0

    嗨Nadir,謝謝你的幫助。 – Filip

    0

    我試圖把列表變成一個循環,並在10天后停止循環。這對我來說工作得很好:

    <?php 
        $xmldata=simplexml_load_file("dates.xml"); 
        $i = 0; 
        foreach($xmldata->day as $day) { 
        if($i==10) break; 
        $i++; 
    
        echo "<p>Date: " . $day->date . "</p>"; 
        echo "<p>Dayname: " . $day->dayname . "</p>"; 
        echo "<p>Time 1: " . $day->htime1 . "</p>"; 
        echo "<p>Time 2: " . $day->htime2 . "</p>"; 
        echo "<hr>"; 
        } 
        ?> 
    

    但現在,我要問當前日期,開始從今天值「日期」的循環,並繼續與即將到來的未來9天。

    XML表格從3月1日開始。但如果是3月6日,循環應該跳過前5天,從3月6日開始。