用php读取特定的xml行

时间:2013-06-07 04:51:39

标签: php xml xml-parsing rss

我试图从雅虎音乐新闻xml文件中获取信息,可在此处找到:

  

http://news.yahoo.com/rss/music

我已经掌握了所有内容,但我不知道如何从“media:content”标签中获取“url”的值。以下是我到目前为止的情况:

<?php
    $newsxml = simplexml_load_file('http://news.yahoo.com/rss/music');
    foreach ($newsxml->channel->item as $newsstory){
         $newsimage = $newsstory['media']->content->url;
    }
?>

我们将非常感谢您解决我的问题。谢谢!

2 个答案:

答案 0 :(得分:1)

这是一个XML命名空间,因此您需要将媒体命名空间的值传递给children()才能访问它。

$newsxml = simplexml_load_file('http://news.yahoo.com/rss/music');
foreach ($newsxml->channel->item as $newsstory){
     $newsimage = $newsstory->children('http://search.yahoo.com/mrss/')->content->attributes()->url;
}

可以在顶部找到媒体命名空间定义,因为您可以看到它被定义为:

  

的xmlns:媒体= “http://search.yahoo.com/mrss/”

答案 1 :(得分:0)

使用此代码循环

$newsxml = simplexml_load_file('http://news.yahoo.com/rss/music');

print "<pre>";
print_r($newsxml->channel);
die;

请参阅获取媒体元素的链接

RSS XML Parsing issue (How to get media content value from the RSS feed?)

您可以在

中看到