Php 从YouTube提要解析XML(不带Zend)

Php 从YouTube提要解析XML(不带Zend),php,xml,parsing,youtube,xml-namespaces,Php,Xml,Parsing,Youtube,Xml Namespaces,我需要从提要中获取非常具体的值,例如: http://gdata.youtube.com/feeds/api/videos/iIp7OnHXBlo 我必须从这些格式奇特的XML提要中读取的一些节点包括: <title type="text">Uploading YouTube Videos with the PHP Client Library</title> <media:content url="http://www.youtube.com/v/iIp7On

我需要从提要中获取非常具体的值,例如:

http://gdata.youtube.com/feeds/api/videos/iIp7OnHXBlo
我必须从这些格式奇特的XML提要中读取的一些节点包括:

<title type="text">Uploading YouTube Videos with the PHP Client Library</title>

<media:content url="http://www.youtube.com/v/iIp7OnHXBlo?version=3&f=videos&app=youtube_gdata" type="application/x-shockwave-flash" medium="video" isDefault="true" expression="full" duration="466" yt:format="5"/>
<media:content url="rtsp://v3.cache7.c.youtube.com/CiILENy73wIaGQlaBtdxOnuKiBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp" type="video/3gpp" medium="video" expression="full" duration="466" yt:format="1"/>

<media:description type="plain">Jochen Hartmann demonstrates the basics of how to use the PHP Client Library with the YouTube Data API. [...]</media:description>

<media:thumbnail url="http://i.ytimg.com/vi/iIp7OnHXBlo/0.jpg" height="360" width="480" time="00:03:53"/>
<media:thumbnail url="http://i.ytimg.com/vi/iIp7OnHXBlo/1.jpg" height="90" width="120" time="00:01:56.500"/>
<media:thumbnail url="http://i.ytimg.com/vi/iIp7OnHXBlo/2.jpg" height="90" width="120" time="00:03:53"/>
<media:thumbnail url="http://i.ytimg.com/vi/iIp7OnHXBlo/3.jpg" height="90" width="120" time="00:05:49.500"/>
<yt:duration seconds="466"/>
使用PHP客户端库上传YouTube视频
Jochen Hartmann演示了如何将PHP客户端库与YouTube数据API结合使用的基础知识。[...]
当然,对GData使用Zend Framework API是绝对不可能的(1225个文件和49MB)仅仅解析XML文件?是的,当然……我的上帝


我需要使用lastRSS解析器或PHP中的任何内置XML函数,任何头脑正常的人都会这样做。提前感谢您提供的任何提示。

几周前我也遇到了同样的问题。通过添加
?format=5&alt=json
可以得到一个json格式的回复,然后您可以轻松地用json进行解析PHP

$url = 'http://gdata.youtube.com/feeds/api/videos/iIp7OnHXBlo?format=5&alt=json';
$response = file_get_contents($url);

$obj = json_decode($response);

几周前,我也遇到了同样的问题。通过添加
?format=5&alt=json
,您可以得到一个json格式的回复,然后可以轻松地用PHP解析

$url = 'http://gdata.youtube.com/feeds/api/videos/iIp7OnHXBlo?format=5&alt=json';
$response = file_get_contents($url);

$obj = json_decode($response);

另一个解决方案是使用这个优秀的xml2Array类:它基本上将xml转换为一个非常易于使用的关联数组

例如,您发布的youtube xml变为:

Array
(
    [ENTRY] => Array
    (
        [XMLNS] => http://www.w3.org/2005/Atom
        [XMLNS:MEDIA] => http://search.yahoo.com/mrss/
        [XMLNS:GD] => http://schemas.google.com/g/2005
        [XMLNS:YT] => http://gdata.youtube.com/schemas/2007
        [ID] => Array
            (
等等


另一个解决方案是使用这个优秀的xml2Array类:它基本上将xml转换为一个非常易于使用的关联数组

例如,您发布的youtube xml变为:

Array
(
    [ENTRY] => Array
    (
        [XMLNS] => http://www.w3.org/2005/Atom
        [XMLNS:MEDIA] => http://search.yahoo.com/mrss/
        [XMLNS:GD] => http://schemas.google.com/g/2005
        [XMLNS:YT] => http://gdata.youtube.com/schemas/2007
        [ID] => Array
            (
等等


你需要这个服务器端还是客户端?是的。它甚至有xpath。还有什么奇怪的格式?你想知道文档中使用的XML命名空间吗?我一直认为,如果使用图像、音频或视频等媒体,它们在atom提要中非常常见。通过SimpleXML访问XML命名空间中的元素可能存在重复(该主题存在问答,甚至应该与Youtube特定的XML(例如或)。你需要这个服务器端还是客户端?是的。它甚至有xpath。还有什么奇怪的格式?你想知道文档中使用的XML名称空间吗?我一直认为,如果使用图像、音频或视频等媒体,它们在atom提要中非常常见。通过SimpleXML访问XML名称空间中的元素可能重复(该主题存在问答,应该与Youtube特定的XML(例如或)保持一致)。谢谢!!这非常适合轻松解析文件,效果非常好。:)谢谢!!这非常适合轻松解析文件,效果非常好。:)