我有一个简单的XML表,日期为 dates.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>';
?>
是否可以从当天开始启动循环?例如今天是三月二日。列表应该是这样的:
你有什么想法,怎么做? 谢谢!
答案 0 :(得分: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>';
}
答案 1 :(得分: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>";
}
?>
但现在,我需要询问当前日期,从价值&#34;日期&#34;开始循环。从今天起,继续接下来的9天。
XML表从3月1日开始。但如果是3月6日,循环应该跳过前5天,从3月6日开始。