在PHP中获取RSS Feed“Enclosure URL”标记的URL

时间:2015-12-31 12:54:46

标签: php rss

说明有效,但URL不起作用,不显示任何内容。我想显示链接,例如:

<enclosure url="http://example.com/file.mp3" length="123456789" type="audio/mpeg">

我的代码是:

<?php
    $rss = new DOMDocument();
    $rss->load('feedlink example');
    $feed = array();
    foreach ($rss->getElementsByTagName('item') as $node) {
        $item = array ( 
            'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
            'url' =>  $node->getElementsByTagName('enclosure url')->item(0)->nodeValue,
            );
        array_push($feed, $item);
    }
    $limit = 1;
    for($x=0;$x<$limit;$x++) {
        $description = $feed[$x]['desc'];
        $url = $feed[$x]['enclosure url'];
        echo '<div class="descricao">'.$description.'</div>'; //it works
        echo $url;  //it does not work , nothing is displayed
    }
?>

1 个答案:

答案 0 :(得分:0)

问题在于您提供了属性的正确名称。

对于这样的标记

<enclosure url="http://example.com/file.mp3" length="123456789" type="audio/mpeg">

enclosure是标记(元素名称),而urllengthtype是属性。

名称为enclosure url的节点不存在。您可以通过调用$node->getElementsByTagName('enclosure')来获取包含getAttribute('url')元素和url值的元素。

对于方法的文档:http://php.net/manual/en/domelement.getattribute.php