【发布时间】:2012-02-03 14:27:38
【问题描述】:
我有以下代码来解析 RSS 提要:
$doc = new DOMDocument();
$doc->load('http://gdata.youtube.com/feeds/api/users/user/uploads?orderby=viewCount');
$arrFeeds = array();
foreach ($doc->getElementsByTagName('entry') as $node) {
$itemRSS = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue
);
array_push($arrFeeds, $itemRSS);
}
Feed 是这样的:
<title type='text'>Handelswetenschappen</title>
<link rel='alternate' type='text/html' href='http://www.youtube.com/watch?v=eDiF7jVsoAQ&feature=youtube_gdata'/>
<media:group>
<media:category label='Onderwijs' scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>Education</media:category>
<media:content url='http://www.youtube.com/v/eDiF7jVsoAQ?version=3&f=user_uploads&app=youtube_gdata' type='application/x-shockwave-flash' medium='video' isDefault='true' expression='full' duration='253' yt:format='5'/>
<media:content url='rtsp://v3.cache4.c.youtube.com/CigLENy73wIaHwkEoGw17oU4eBMYDSANFEgGUgx1c2VyX3VwbG9hZHMM/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='253' yt:format='1'/>
<media:content url='rtsp://v6.cache8.c.youtube.com/CigLENy73wIaHwkEoGw17oU4eBMYESARFEgGUgx1c2VyX3VwbG9hZHMM/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='253' yt:format='6'/>
<media:description type='plain'>Wil jij meer weten over de opleiding Handelswetenschappen? Bekijk dan snel dit filmpje. Studenten Lise en Jean-Marie vertellen je alles over Handelswetenschappen studeren. Ze gaan langs bij de decaan, bij een oud-student en bij toekomstig werkgever.</media:description>
<media:keywords>HUB, hubrussel, hogeschool, universiteit, brussel, unief, studie, student, studeren, studentenleven, kot, examen, les, cursus, prof, docent, diploma, bachelor, master, professioneel, academisch, opleiding, blokken, eindwerk, eindproef, masterproef, stage, studentenclub, cantus, studiebegeleiding, geslaagd, spieken, fuif, uitgaan, job, studentenjob, handelswetenschappen, economie, TW, toegepaste, economische, wetenschappen, ehsal</media:keywords>
<media:player url='http://www.youtube.com/watch?v=eDiF7jVsoAQ&feature=youtube_gdata_player'/>
<media:thumbnail url='http://i.ytimg.com/vi/eDiF7jVsoAQ/0.jpg' height='360' width='480' time='00:02:06.500'/>
<media:thumbnail url='http://i.ytimg.com/vi/eDiF7jVsoAQ/1.jpg' height='90' width='120' time='00:01:03.250'/>
<media:thumbnail url='http://i.ytimg.com/vi/eDiF7jVsoAQ/2.jpg' height='90' width='120' time='00:02:06.500'/>
<media:thumbnail url='http://i.ytimg.com/vi/eDiF7jVsoAQ/3.jpg' height='90' width='120' time='00:03:09.750'/>
<media:title type='plain'>Handelswetenschappen aan de HUB</media:title>
<yt:duration seconds='253'/>
</media:group>
使用上面的代码,我可以获取标题和描述。 我需要知道的是如何获取链接,因此实际上是项目“链接”的属性,即 media:content url 或 media:player url。
【问题讨论】:
-
只是一个评论 - RSS 提要是一个 XML 文档,因此您最好使用 SimpleXML 或其他 XML 解析器而不是 DOMDocument。
-
我都看过了,为什么一个比另一个好?
-
嗯,DOM 解析器旨在解析 DOM 树,并为此提供特定的功能。 XML 解析器旨在解析 XML,因此可以帮助您处理自定义名称空间(