PHP SimpleXML XPath -显示数据有问题


PHP SimpleXML XPath - displaying data has problem

(移自原问题)

我在本地主机上有一个广播电台网站,页面是一系列的包括和要求-他们工作得很好。

但是,在一个调度页面上,我在一个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文件显示其中的多条记录呢?

下面是monschedd . XML的XML内容:

<?xml version="1.0"?>

presenter.php约翰尼·多伊johnny.jpg00:00约翰·多伊在夜里更多关于节目的信息

我遵循了http://devzone.zend.com/article/651上的教程(最后的Baz Luhrmann示例是我试图模仿的)。一切都很顺利,除了一个问题....如何使用SimpleXML从XML文件中的多条记录中读取PHP文件?

如果我有很多节目,我怎么让它从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的例子为多个条目工作是棘手的-有人能弄清楚吗?

这个教程在其他方面很有帮助,但是并没有回答我所有的问题。

问题在于您需要不同的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 
}