【问题标题】:Reading a specific line of xml with php用 php 读取特定的 xml 行
【发布时间】:2013-06-07 04:51:38
【问题描述】:

我正在尝试从 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;
    }
?>

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

【问题讨论】:

标签: php xml xml-parsing rss


【解决方案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/"

【讨论】:

    【解决方案2】:

    使用此代码循环

    $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?)

    这里可以看到

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-12
      • 1970-01-01
      相关资源
      最近更新 更多