source: trunk/fl5/src/com/longtailvideo/jwplayer/parsers/ATOMParser.as @ 320

Revision 320, 1.3 KB checked in by pablo, 4 years ago (diff)

Adding XML Playlist parsers and related tests

Line 
1package com.longtailvideo.jwplayer.parsers {
2
3        import com.longtailvideo.jwplayer.model.PlaylistItem;
4
5        /**
6         * Parse an ATOM feed and translate it to a feedarray.
7         **/
8        public class ATOMParser {
9
10                /** Parse an RSS playlist for feeditems. **/
11                public static function parse(dat:XML):Array {
12                        var arr:Array = new Array();
13                        for each (var i:XML in dat.children()) {
14                                if (i.localName() == 'entry') {
15                                        arr.push(ATOMParser.parseItem(i));
16                                }
17                        }
18                        return arr;
19                }
20
21                /** Translate ATOM item to playlist item. **/
22                public static function parseItem(obj:XML):PlaylistItem {
23                        var itm:Object = new Object();
24                        for each (var i:XML in obj.children()) {
25                                switch (i.localName().toLowerCase()) {
26                                        case 'author':
27                                                itm['author'] = i.children()[0].text().toString();
28                                                break;
29                                        case 'title':
30                                                itm['title'] = i.text().toString();
31                                                break;
32                                        case 'summary':
33                                                itm['description'] = i.text().toString();
34                                                break;
35                                        case 'link':
36                                                if (i.@rel == 'alternate') {
37                                                        itm['link'] = i.@href.toString();
38                                                } else if (i.@rel == 'enclosure') {
39                                                        itm['file'] = i.@href.toString();
40                                                }
41                                                break;
42                                        case 'published':
43                                                itm['date'] = i.text().toString();
44                                                break;
45                                }
46                        }
47                        itm = MediaParser.parseGroup(obj, itm);
48                        itm = JWParser.parseEntry(obj, itm);
49                        return new PlaylistItem(itm);
50                }
51
52        }
53
54}
Note: See TracBrowser for help on using the repository browser.