2011-01-31 76 views
0

我正在嘗試使用xml文件並從中檢索所有鏈接。到目前爲止,我有:xml問題php

$xmlHeadline = $xml->channel[0]->item[3]->link; 
print($xmlHeadline); 

該工程確定要打印的XML單標題鏈接item[3]。但正如你所看到的那樣,它是兩層深的。然後下一個將在channel[0]->item[4]->link。沒有頻道1,只有channel[0]

互聯網上的所有例子只處理1級深度。他們都使用了一個foreach循環,但我不確定這是否可以在這裏使用...

如何循環瀏覽xml中的所有項目並回顯所有鏈接?

回答

0

嘗試

foreach ($xml->channel[0]->item as $item) { 
    echo $item->link; 
} 

foreach ($xml->xpath('/channel/item/link') as $link) { 
    echo $link; 
} 
0

我想你想要一個DOM解析器,它可以讓你加載XML作爲一個結構化的層次結構,然後使用像getElementByIdhttp://php.net/manual/en/domdocument.getelementbyid.php這樣的函數來解析xml並獲得你想要的任意深度的特定項。

如果您提供了xml文件的結構,我可能會幫助您具體使用DOM功能。

0
$str = '<channels><channel> 
<item><link>google.com</link></item> 
<item><link>google.com.cn</link></item> 
<item><link>google.com.sg</link></item> 
<item><link>google.com.my</link></item> 
</channel></channels>'; 
$xml = simplexml_load_string($str); 
$objs = $xml->xpath('//channel/item/link'); 

PS:請註明您的XML的一些例子