0
我有一个来自youtube API的XML提要。到目前为止,我已经成功地提升了标题,缩略图,收视率等等。但是,我正在努力解析以下提要中的内容网址。从YouTube上选择内容类型API
<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>
下面是我的代码到目前为止。我相信这对其他项目的工作,因为我没有从多个节点,即选择只有一个标题,缩略图网址等..
$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;
}
如何选择这些内容类型中的一种?
有没有'在XML src'属性还有你的......有一个'url'属性的URL,因此没有什么你应该阅读? –
哎呀!我解决了一些错误的代码。我已经更新了它。这不是问题的顺便说一句。 – stupidmachine
你也许应该解释'$ media'是什么。 PHP中不仅有一种解析XML的方法。我们不知道这个变量是什么。 –