⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rssparser.as

📁 FLASH 个人主页代码
💻 AS
字号:
/**
* Parses ATOM feeds and returns an indexed array with all elements
*
* @author	Jeroen Wijering
* @version	1.0
**/


import com.jeroenwijering.feeds.AbstractParser;
import com.jeroenwijering.utils.StringMagic;


class com.jeroenwijering.feeds.RSSParser extends AbstractParser {


	/** Contructor **/
	function RSSParser(enc:Boolean,pre:String) { super(enc,pre); };


	/** build an array with all regular elements **/
	private function setElements() {
		elements = new Object();
		elements["title"] = "title";
		elements["guid"] = "id";
		elements["author"] = "author";
		elements["category"] = "category";
		elements["link"] = "link";
		elements["geo:lat"] = "latitude";
		elements["geo:long"] = "longitude";
		elements["geo:city"] = "city";
	};


	/** Convert ATOM structure to array **/
	private function parse(xml:XML):Array {
		var arr = new Array();
		var tpl = xml.firstChild.firstChild.firstChild;
		while(tpl != null) {
			if (tpl.nodeName.toLowerCase() == "item") {
				var obj = new Object();
				for(var j=0; j<tpl.childNodes.length; j++) {
					var nod:XMLNode = tpl.childNodes[j];
					if(elements[nod.nodeName.toLowerCase()] != undefined) {
						obj[elements[nod.nodeName.toLowerCase()]] = 
							nod.firstChild.nodeValue;
					} else if(nod.nodeName.toLowerCase() == "description") {
						obj["description"] = StringMagic.stripTagsBreaks(
							nod.firstChild.nodeValue);
					} else if(nod.nodeName.toLowerCase() == "pubdate") {
						obj["date"] = rfc2Date(nod.firstChild.nodeValue);
					} else if(nod.nodeName.toLowerCase() == "dc:date") {
						obj["date"] = iso2Date(nod.firstChild.nodeValue);
					} else if(nod.nodeName.toLowerCase()=="media:thumbnail") {
						obj["image"] = nod.attributes.url;
					} else if(nod.nodeName.toLowerCase() == "itunes:image") {
						obj["image"] = nod.attributes.href;
					} else if(nod.nodeName.toLowerCase() == "geo") {
						obj["latitude"] = nod.attributes.latitude;
						obj["longitude"] = nod.attributes.longitude;
						obj["city"] = nod.attributes.city;
					} else if(nod.nodeName.toLowerCase() == "enclosure" || 
						nod.nodeName.toLowerCase() == "media:content") {
						if(mimetypes[nod.attributes.type.toLowerCase()] != 
							undefined) {
							obj["file"] = prefix + 
								nod.attributes.url.toLowerCase();
							obj["type"] = mimetypes[nod.attributes.type];
							if(obj["file"].substr(0,4) == "rtmp") {
								obj["type"] == "rtmp";
							}
						}
						if(nod.attributes.type == "captions") {
							obj["captions"] = nod.attributes.url;
						}
					} else if(nod.nodeName.toLowerCase() == "media:group") { 
						for(var k=0; k< nod.childNodes.length; k++) {
							if(nod.childNodes[k].nodeName == "media:content"){
								var ftp = nod.childNodes[k].attributes.type;
								if(mimetypes[ftp.toLowerCase()] != undefined){
									obj["file"] = prefix + 
										nod.childNodes[k].attributes.url;
									obj["type"]=mimetypes[ftp.toLowerCase()];
									if(obj["file"].substr(0,4) == "rtmp") {
										obj["type"] == "rtmp";
									}
								}
							} else if(nod.childNodes[k].nodeName == 
								"media:thumbnail") {
								obj["image"]=nod.childNodes[k].attributes.url;
							}
						}
					}
				}
				if(obj["latitude"] == undefined && lat != undefined) {
					obj["latitude"] = lat;
					obj["longitude"] = lng;
				}
				if(obj["image"]==undefined && obj["file"].indexOf(".jpg")>0){
					obj["image"] = obj["file"];
				}
				if(obj["author"] == undefined) { obj["author"] = ttl; } 
				if(obj["type"] != undefined || enclosures == false) {
					arr.push(obj);
				}
			} else if (tpl.nodeName == "title") {
				var ttl = tpl.firstChild.nodeValue;
			} else if (tpl.nodeName == "geo:lat") { 
				var lat = tpl.firstChild.nodeValue; 
			} else if (tpl.nodeName == "geo:long") { 
				var lng = tpl.firstChild.nodeValue;
			}
			tpl = tpl.nextSibling;
		}
		return arr;
	};


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -