📄 rssparser.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 + -