2012-04-13 85 views
2

Iam尝试读取“itunes RSS Feed”。据我所知它是基于ATOM的。Zend_Feed访问项 - ATOM

正常工作:

$feed = $this->getFeed(self::TOP300_PAYED); 

    foreach ($feed as $item) { 
     echo $item->name; 
    } 

但我需要以下节点:

<im:image height="53"> 
http://a3.mzstatic.com/us/r1000/116/Purple/61/9b/f2/mzl.wyuzxxzw.53x53-50.png 
</im:image> 

任何想法如何与Zend饲料访问此?

回答

3

像任何其他ATOM供稿,您可以遍历它是这样的:

$feed = new Zend_Feed_Atom("example.com"); 
    foreach ($feed as $entry) { 
     $xml = $entry->saveXml(); 
     $xmlObj = simplexml_load_string($xml); 

     $xmlObj->registerXPathNamespace('im', "example.com"); 
     $result = $xmlObj->xpath('//im:image'); 

     foreach ($result as $image) { 
      echo $image . "\n"; 
     } 
    } 

注意使用registerXPathNamespace()这里,似乎iTunes中使用的命名空间的饲料,这就是为什么你需要的原因首先注册它。

试试这个,让我知道它是否有效。

1

感谢“命名空间”提示:

最终的解决方案:

 $item->registerXPathNamespace('im', 'image'); 
     $image = (string) $item->image[0]; // first image "52" 
+2

基本上,我回答:)感谢反正最终的解决方案是一样的。 – Liyali 2012-04-15 11:25:11