Выбор типа контента из YouTube API - PullRequest
0 голосов
/ 15 августа 2011

У меня есть XML-фид из YouTube API.До сих пор я успешно поднял заголовок, миниатюру, рейтинг и т. Д. Однако я изо всех сил пытаюсь проанализировать URL-адрес контента из следующего канала.

<feed xmlns='http://www.w3.org/2005/Atom' xmlns:media='http://search.yahoo.com/mrss/'>
<entry>
<media:group>
<media:content url='http://www.youtube.com/v/ZTUVgYoeN_b?f=gdata_standard...' type='application/x-shockwave-flash' medium='video' isDefault='true' expression='full' duration='215' yt:format='5'/>

<media:content url='rtsp://rtsp2.youtube.com/ChoLENy73bIAEQ1kgGDA==/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='215' yt:format='1'/>

<media:content url='rtsp://rtsp2.youtube.com/ChoLENy73bIDRQ1kgGDA==/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='215' yt:format='6'/>

</media:group>
</entry>
</feed>

Ниже приведен мой код.Я считаю, что это работает для других элементов, потому что я не выбирал из нескольких узлов, то есть есть только один заголовок, URL-адрес эскиза и т. Д. *

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $xml_feed_url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$xml = curl_exec($ch);
curl_close($ch);

$feed = produce_XML_object_tree($xml);
$entry = $feed->entry;
$media = $entry->children('http://search.yahoo.com/mrss/');
$urla=$media->content->attributes();
$url=$urla["url"];

function produce_XML_object_tree($raw_XML) 
{
libxml_use_internal_errors(true);
try 
    {
    $xmlTree = new SimpleXMLElement($raw_XML);
    } 
    catch (Exception $e) 
    {
    // Something went wrong.
    $error_message = 'SimpleXMLElement threw an exception.';
    foreach(libxml_get_errors() as $error_line) 
        {
        $error_message .= "\t" . $error_line->message;
        }

    trigger_error($error_message);
    return false;
    }
return $xmlTree;
}

Как выбрать один из этих типов контента?

1 Ответ

0 голосов
/ 15 августа 2011

Решено

Чтобы выбрать один из типов контента, мне просто нужно было использовать простой индекс.Надеюсь, это урок, который мне нужно выучить только один раз:

$urla=$media->group->content[0]->attributes();
$url=$urla["url"];
...