php – 帮助使用DOMDocument解析XML
发布时间:2020-09-01 05:32:07 所属栏目:PHP 来源:互联网
导读:我正在尝试解析youtube播放列表字段. URL为:http://gdata.youtube.com/feeds/api/playlists/664AA68C6E6BA19B?v=2 我需要:标题,视频ID和默认缩略图. 我可以很容易地获得标题,但是当涉及到嵌套元素时,我有点迷失 $data = new DOMDocument(); if($data-load(h
我正在尝试解析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/"AkYGSXc9cSp7ImA9Wx9VGEk.""> <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() 方法.
文档(上面链接)应该为您提供如何使用它的技术内容,足以说它将类似于以下(也使用 $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文档中的命名空间项目. (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |