(从原始问题转移。)
我在localhost上有一个广播电台网站,这些网页是一系列包含和要求 - 它们运作良好。
但是,在一个页面上,一个日程表,我在DIV中显示从SimpleXML文档中提取的一些数据。
这是PHP文档的编码:
<div class="itemheading"><h1><span>Programme Guide</span></h1></div>
<div class="itembody">
<div id="progdays">
<ul>
<li><a href="sunsch.php" title="Sunday">Sunday</a></li>
<li class="currentday"><a href="monsch.php">Monday</a></li>
<li><a href="tuesch.php" title="Tuesday">Tuesday</a></li>
<li><a href="wedsch.php" title="Wednesday">Wednesday</a></li>
<li><a href="thursch.php" title="Thursday">Thursday</a></li>
<li><a href="frisch.php" title="Friday">Friday</a></li>
<li><a href="satsch.php" title="Saturday">Saturday</a></li> </ul>
</div>
<?php
require("monsch.php");
?>
</div>
以下是monsch.php的内容:
<?php
// set name of XML file
// normally this would come through GET
// it's hard-wired here for simplicity
$file = "monsched.xml";
// load file
$xml = simplexml_load_file($file) or die ("Unable to load XML file!");
?>
<dl class="standard">
<dt><a href="<?php echo $xml->link; ?>" title="<?php echo $xml->show; ?>"><?php echo $xml->showtime; ?> - <?php echo $xml->show; ?></a></dt>
<dd class="itemimg"><a href="<?php echo $xml->link; ?>" title="<?php echo $xml->show; ?>"><img src="<?php echo $xml->image; ?>" width="100" height="75" alt="<?php echo $xml->show; ?>" title="<?php echo $xml->show; ?>" /></a></dd>
<dd class="itemdesc">
<?php echo $xml->showinfo; ?>
</dd>
<dd class="itemlink">
<a href="<?php echo $xml->link; ?>" title="<?php echo $xml->moreinfo; ?>"><span></span><?php echo $xml->moreinfo; ?></a>
</dd>
</dl>
使用PHP的echo()函数可以正常工作,但是如何让XML文件显示多条记录。
这是monsched.xml的XML内容:
<?xml version="1.0"?>
presenter.php 约翰尼 johnny.jpg 00:00 John Doe彻夜难眠 更多关于节目
我遵循了http://devzone.zend.com/article/651的教程(Baz Luhrmann最后的例子是我试图模仿的)。一切正常,除了一个问题....如何使用SimpleXML获取PHP文件,从XML文件中的多个记录中读取。
如果我有很多节目,我怎样才能从XML文件中提取所有,就像上面的格式一样。
这些是包含XML中描述和图像的节目: 这是我的XML格式:
<?xml version="1.0"?>
<link>presenter1.php</link>
<show>John Doe</show>
<image>overnight.jpg</image>
<showtime>01:00</showtime>
<showinfo>John Doe plays the hits
</showinfo>
<link>presenter2.php</link>
<show>Breakfast Show</show>
<image>headphones.jpg</image>
<showtime>06:00</showtime>
<showinfo>More music breakfast
</showinfo>
所有的帮助都表示赞赏,我是SimpleXML和XPath的新手,但是试图让Baz Luhrmann的例子适用于多个条目是很棘手的 - 任何人都能搞清楚吗?
虽然该教程有所帮助,但没有回答我的所有问题。
答案 0 :(得分:0)
您的案例中的问题是您需要不同的XML结构:
<?xml version="1.0"?>
<podcasts>
<podcast>
<link>presenter1.php</link>
<show>John Doe</show>
<image>overnight.jpg</image>
<showtime>01:00</showtime>
<showinfo>John Doe plays the hits
</showinfo>
</podcast>
<podcast>
<link>presenter2.php</link>
<show>Breakfast Show</show>
<image>headphones.jpg</image>
<showtime>06:00</showtime>
<showinfo>More music breakfast
</showinfo>
</podcast>
</podcasts>
之后使用以下PHP代码:
$xml = simplexml_load_file($file)
foreach($xml->podcast as $row) {
echo $row->link;
?>
<dl class="standard">
<dt><a href="<?php echo $xml->link; ?>" title="<?php echo $xml->show; ?>">
<?php echo $xml->showtime; ?> - <?php echo $xml->show; ?></a></dt>
<dd class="itemimg"><a href="<?php echo $xml->link; ?>" title="<?php echo $xml->show; ?>"><img src="<?php echo $xml->image; ?>" width="100" height="75" alt="<?php echo $xml->show; ?>" title="<?php echo $xml->show; ?>" /></a></dd>
<dd class="itemdesc">
<?php echo $xml->showinfo; ?>
</dd>
<dd class="itemlink">
<a href="<?php echo $xml->link; ?>" title="<?php echo $xml->moreinfo; ?>"><span></span><?php echo $xml->moreinfo; ?></a>
</dd>
</dl>
<?php
}