/** * Parse a TimedText XML and return an array of captions. * * The entries in the array look like: * []['begin'] * []['end'] * []['text'] * **/ package com.jeroenwijering.parsers { import com.jeroenwijering.utils.Strings; public class TTParser { /** The supported paragraph elements. **/ private static var ELEMENTS:Object = { 'begin':undefined, 'dur':undefined, 'end':undefined, 'text':undefined }; /** Parse the cationing array. **/ public static function parseCaptions(dat:XML):Array { var arr = new Array(); var div = dat.children()[1].children()[0]; for each (var i in div.children()) { if(i.localName() == 'p') { arr.push(TTParser.parseCaption(i)); } } return arr; }; /** Parse a single captions entry. **/ private static function parseCaption(dat:XML):Object { var obj = { begin:Strings.seconds(dat.@begin), dur:Strings.seconds(dat.@dur), end:Strings.seconds(dat.@end), text:dat.children().toString() }; if(obj['dur']) { obj['end'] = obj['begin'] + obj['dur']; delete obj['dur']; } return obj; }; } }