2011-07-10 66 views
0

PHP的SimpleXML的XPath - 顯示數據有問題

我有一個廣播電臺的網站在本地主機上,並且頁面是一系列的包括和要求(從原來的問題移動。) - 他們工作得很好。

然而,一個頁面,一個一個時間表上,我顯示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的回聲()函數正確的,但如何將我得到XML文件以顯示多條記錄。

這裏的monsched.xml的XML內容:

<?xml version="1.0"?> 

presenter.php 約翰尼·多伊 johnny.jpg 00:00 李四通宵達旦 更多關於展會

我跟着教程在http://devzone.zend.com/article/651(末尾的巴茲魯曼例子是什麼,我試圖鴯鶓晚了)。和一切工作正常,除了一個問題....我怎麼讓PHP文件,使用SimpleXML,從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,而是試圖讓巴茲·魯爾曼的例子爲多個條目工作是棘手的 - 任何人都能想出來?

雖然本教程是有用的,但沒有回答我所有的問題。

回答

0

你的情況的問題是taht你需要diferent 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 
} 
+0

謝謝,這裏的PHP代碼,HTTP://引擎收錄.com/3XXwcYQ4,我該怎麼做才能解決這個問題: – radiosoundz84

+0

這是您的答案......並且它非常簡單易懂 – infinity

+0

我試過上面的代碼 - 這是結果:http://i52.tinypic.com /afhno5.png – radiosoundz84