2

我正在尝试从 yahoo 音乐新闻 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;
    }
?>

解决我的问题的任何帮助将不胜感激。谢谢!

4

2 回答 2

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:media="http://search.yahoo.com/mrss/"

于 2013-06-07T08:28:20.883 回答
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?)

在这里你可以看到

于 2013-06-07T08:14:49.173 回答