2011-06-23 64 views
0

我試圖檢索HREF並使用SimpleXML回顯出來,但我不斷收到下面的錯誤消息。需要幫助SimpleXML和檢索HREF節點值

警告:()在...

<?php 

$url = 'file.xml'; 

foreach(simplexml_load_file($url)->info->content->item as $it) { 
    echo $it->site-page-href; 
} 

?> 

<?xml version="1.0" encoding="utf-8"?> 
<info> 
    <content> 
     <item> 
      <site> 
       <page> 
        <href>http://domain.com</href> 
       </page> 
      </site> 
     </item> 
    </content> 
<info> 

任何人都可以找出問題的foreach爲無效的論點提供?

回答

3
  1. echo $it->site-page-href; 應該echo $it->site->page->href;
  2. 你 結束標記應該是</info>
  3. 你不應該使用->info你 已經在根元素。
    即。
    simplexml_load_file($url)->content->item
    simplexml_load_file($url)->info->content->item

順便說一下,發現所有的HREF節點都可以,如果你使用xpath更容易實現。

$xml = simplexml_load_file($url); 
$href = $xml->xpath(".//href"); 
foreach($href as $h) { 
    var_dump($h); 
} 
+0

我喜歡你的xpath例子!謝謝!! – Zoolander

0

首先使用

echo $it->site->page->href; 

代替

echo $it->site-page-href; 

,並結束<info>標籤與</info>在XML文件中。