SimpleXml获取属性值


SimpleXml Get Attribute Value

我正试图从博客的rss中获取最近的帖子,并通过php打印它们。我所做的一切都很好,但我无法从XML文件中获取图像缩略图。它存储在一个属性中。

我的xml输出是:

<item><title>Stackoverflow inspired movies list</title><link>http://www.example.com/2015/03/movies-list.html</link><author>(Ididntknewit)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://the.url.com/image.png' height='72' width='72'/><thr:total>0</thr:total></item>

我的PHP代码:

<?php
header('Content-Type: text/html');
$rss =simplexml_load_file($requestURL);
?>
<?php
echo '<ul>';
foreach($rss->channel->item as $post){
    echo '<li>';
    $max = $post->media:thumbnail['url'];
    echo $max;
    echo '<a href="'.$post->link.'">'.$post->title.'</a>';
    echo '</li>';
}
echo '</ul>';
?>

如何获取缩略图URL。

您的主要问题是SimpleXML无法解析媒体:缩略图。我为你写了一个快速解决方案,但我确信有一种更有效的方法:

header('Content-Type: text/html');
$rss = simplexml_load_string(
    // replace media:thumbnail with mediathumbnail
    str_replace(
        'media:thumbnail',
        'mediathumbnail',
        file_get_contents($requestURL)
    )
);
echo '<ul>';
foreach($rss->channel->item as $post)
{
    echo '<li>';
    // getting mediathumbnail attributes
    $attributes = $post->mediathumbnail->attributes();
    // this is the thumbnail url
    $max = $attributes->url;
    echo $max;
    echo '<a href="'.$post->link.'">'.$post->title.'</a>';
    echo '</li>';
}
echo '</ul>';

希望我能帮上忙。:)