我想从“http://rapfix.mtv.com/feed”获取我正在创建的网站的新闻Feed。除了能够为每篇文章提取图像的URL位置之外,我还有其他工作。
在此Feed中,图片网址在代码中显示如下:
<media:content url="http://rapfix.mtv.com/wp-content/uploads/2011/05/tyler-handcuff.jpg" type="image/jpeg" height="300" width="575">
<media:text type="plain"><![CDATA[tyler-handcuff]]></media:text>
</media:content>
我从另一个stackoverflow问题中读到,您可以使用以下内容从节点中提取信息:
$item_pic = $article->getElementsByTagNameNS('http://purl.org/rss/1.0/modules/content/', 'content')->item(0);
但是现在,我正试图从中获取“URL”属性。以下是我的代码:
$xml=("http://rapfix.mtv.com/feed");
$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);
$x = $xmlDoc->getElementsByTagName('item');
foreach($x as $article){
$item_title = $article->getElementsByTagName('title')->item(0)->nodeValue;
$item_link = $article->getElementsByTagName('link')->item(0)->nodeValue;
$item_desc = $article->getElementsByTagName('description')->item(0)->nodeValue;
$item_pic = $article->getElementsByTagNameNS('http://purl.org/rss/1.0/modules/content/', 'content')->item(0);
echo ("<strong><a href='".$item_link."' target='_blank'>".$item_title."</a></strong><br />");
echo ("<div><div class='FloatLeft'><img src='".$item_pic."' width='100' height='100'/></div><div class='FloatLeft'>".$item_desc." - <a href='".$item_link."' target='_blank'>Read More</a></div>^");
}
关于如何完成这项工作的任何想法?
答案 0 :(得分:1)
目标元素的命名空间是媒体。元素名称是内容。媒体名称空间的名称空间URL为http://search.yahoo.com/mrss/。因此:
foreach($x as $article)
{
$nlContent = $article->getElementsByTagNameNS('http://search.yahoo.com/mrss/', 'content');
if( $nlContent->length > 0 )
$item_pic = $nlContent->item(0)->getAttribute('url');
else
$item_pic = '/images/noimageavailable.jpg';
echo $item_pic . "\n";
}