php – 帮助使用DOMDocument解析XML

我正在尝试解析youtube播放列表字段.

URL为:http://gdata.youtube.com/feeds/api/playlists/664AA68C6E6BA19B?v=2

我需要:标题,视频ID和缩略图.

我可以很容易地获得标题,但是当涉及到嵌套元素时,我有点迷失

$data = new DOMDocument();
        if($data->load("http://gdata.youtube.com/Feeds/api/playlists/664AA68C6E6BA19B?v=2"))
        {       
            foreach ($data->getElementsByTagName('entry') as $video)
            {
                $title = $video->getElementsByTagName('title')->item(0)->nodeValue;
                $id    = ??
                $thumb = ??                 
            }
        }

这是XML(我已经删除了与此示例无关的元素)

<entry gd:etag="W/&quot;AkYGSXc9cSp7ImA9Wx9VGEk.&quot;">    
    <title>A gopro Weekend On The Ice</title>

    <media:group>
        <media:thumbnail url="http://i.ytimg.com/vi/yk6wkfVNFQE/default.jpg" height="90" width="120" time="00:02:07" yt:name="default" />          
        <yt:videoid>yk6wkfVNFQE</yt:videoid>
    </media:group>

</entry>

我需要来自thumbnail-default的“videoid”和“url”

谢谢!

与您已经使用的 getElementsByTagName()类似,要访问命名空间元素(可以通过namespace:element-name识别),您可以使用 getElementsByTagNameNS()方法.

文档(上面链接)应该为您提供如何使用它的技术内容,足以说它将类似于以下(也使用getAttribute()).

$yt    = 'http://gdata.youtube.com/schemas/2007';
$media = 'http://search.yahoo.com/mRSS/';

// Inside your loop
$id    = $video->getElementsByTagNameNS($yt,'videoid')->item(0)->nodeValue;
$thumb = $video->getElementsByTagNameNS($media,'thumbnail')->item(0)->getAttribute('url');

希望这应该为您提供一个跳板来跳过访问XML文档中的命名空间项目.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...