|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
CLASS RSS2PARSER (LECTEUR DE FLUX RSS 2.0)
Information sur la source
Description
hello voici une class qui permet d'analyser un flux rss 2.0 Elle ne charge pas le flux, vous devez lui fournir un object XML lors de l'initialisation. var x:XML = new XML(); x.ignoreWhites = true; x.load("http://fluxrss2"); x.onLoad = function() { var rss2 = new rss2Parser(x); } La methode rssInfo() retourn un objet {title, link, description} qui decrit le flux rss. la methode parse() permet de parser le fichier, et de stoquer les infos dans un array. la methode retourne true quand elle a fini. la methode getValue() permet de recuperer l'array créé par parse(). Chaque item de cet array est un object {titre, description, link, source}.
Source
- // rss2Parser.as
- //
- // @author: BlackWizzard
- // @description: analyse un flux rss 2.0
- class rss2Parser {
- public var xmlFile:String;
- public var x:XML;
- public var nObject:Object;
- public var nArray:Array;
- //
- function rss2Parser(xml:String) {
- System.useCodepage = true;
- nObject = new Object();
- nArray = new Array();
- x = new XML();
- x.ignoreWhite = true;
- x.parseXML(xml);
- parse();
- }
- //
- function rssInfo() {
- var tmpO:Object = new Object();
- tmpO.title = getValueByRef(x.childNodes[0].childNodes[0], "title");
- tmpO.link = getValueByRef(x.childNodes[0].childNodes[0], "link");
- tmpO.description = getValueByRef(x.childNodes[0].childNodes[0], "description");
- return tmpO;
- }
- //
- function parse() {
- var i:Number = getNodeNumberByRef(x.childNodes[0].childNodes[0], "item");
- while (x.childNodes[0].childNodes[0].childNodes[i] != undefined) {
- var tmpO:Object = new Object();
- tmpO.titre = getValueByRef(x.childNodes[0].childNodes[0].childNodes[i], "title");
- tmpO.description = ereg_replace(getValueByRef(x.childNodes[0].childNodes[0].childNodes[i], "description"), "n", "");
- tmpO.description = ereg_replace(tmpO.description, "a>", "a>");
- tmpO.description = ereg_replace(tmpO.description, "<a", "<a");
- tmpO.description = ereg_replace(tmpO.description, "u>", "u>");
- tmpO.description = ereg_replace(tmpO.description, "<u", "<u");
- tmpO.description = ereg_replace(tmpO.description, "i>", "i>");
- tmpO.description = ereg_replace(tmpO.description, "<i", "<i");
- tmpO.description = ereg_replace(tmpO.description, "b>", "b>");
- tmpO.description = ereg_replace(tmpO.description, "<b", "<b");
- tmpO.description = ereg_replace(tmpO.description, "img>", "img>");
- tmpO.description = ereg_replace(tmpO.description, "<img", "<img");
- tmpO.description = ereg_replace(tmpO.description, "'", "'");
- tmpO.description = ereg_replace(tmpO.description, """, """);
- tmpO.link = getValueByRef(x.childNodes[0].childNodes[0].childNodes[i], "link");
- tmpO.source = getValueByRef(x.childNodes[0].childNodes[0].childNodes[i], "source");
- nArray.push(tmpO);
- i++;
- }
- return true;
- }
- //
- function getValueByRef(xm:XML, s:String) {
- var i:Number = 0;
- while (xm.childNodes[i] != undefined) {
- if (xm.childNodes[i].nodeName == s) {
- return (xm.childNodes[i].childNodes[0].toString());
- }
- i++;
- }
- return "";
- }
- //
- function getNodeNumberByRef(xm:XML, s:String) {
- var i:Number = 0;
- while (xm.childNodes[i] != undefined)
- if (xm.childNodes[i].nodeName == s) {
- return i;
- }
- i++;
- }
- }
- //
- function getValue():Object {
- return nArray;
- }
- //
- function isLoaded() {
- if (x.getBytesLoaded() == x.getBytesTotal()) {
- return 100;
- } else {
- return x.getBytesLoaded()/x.getBytesTotal()*100;
- }
- }
- //
- function ereg_replace(s, str, rep, chr) {
- var t = (chr<0) ? s.substr(chr) : s.substr(0, chr);
- var s = str.length;
- var r = rep.length;
- var p = t.indexOf(str);
- while (p != -1) {
- t = t.substr(0, p)+rep+t.substr(p+s);
- p = t.indexOf(str, p+r);
- }
- return (chr) ? (chr<0) ? s.substr(0, s.length+chr)+t : t+s.substr(chr) : t;
- }
- }
// rss2Parser.as
//
// @author: BlackWizzard
// @description: analyse un flux rss 2.0
class rss2Parser {
public var xmlFile:String;
public var x:XML;
public var nObject:Object;
public var nArray:Array;
//
function rss2Parser(xml:String) {
System.useCodepage = true;
nObject = new Object();
nArray = new Array();
x = new XML();
x.ignoreWhite = true;
x.parseXML(xml);
parse();
}
//
function rssInfo() {
var tmpO:Object = new Object();
tmpO.title = getValueByRef(x.childNodes[0].childNodes[0], "title");
tmpO.link = getValueByRef(x.childNodes[0].childNodes[0], "link");
tmpO.description = getValueByRef(x.childNodes[0].childNodes[0], "description");
return tmpO;
}
//
function parse() {
var i:Number = getNodeNumberByRef(x.childNodes[0].childNodes[0], "item");
while (x.childNodes[0].childNodes[0].childNodes[i] != undefined) {
var tmpO:Object = new Object();
tmpO.titre = getValueByRef(x.childNodes[0].childNodes[0].childNodes[i], "title");
tmpO.description = ereg_replace(getValueByRef(x.childNodes[0].childNodes[0].childNodes[i], "description"), "n", "");
tmpO.description = ereg_replace(tmpO.description, "a>", "a>");
tmpO.description = ereg_replace(tmpO.description, "<a", "<a");
tmpO.description = ereg_replace(tmpO.description, "u>", "u>");
tmpO.description = ereg_replace(tmpO.description, "<u", "<u");
tmpO.description = ereg_replace(tmpO.description, "i>", "i>");
tmpO.description = ereg_replace(tmpO.description, "<i", "<i");
tmpO.description = ereg_replace(tmpO.description, "b>", "b>");
tmpO.description = ereg_replace(tmpO.description, "<b", "<b");
tmpO.description = ereg_replace(tmpO.description, "img>", "img>");
tmpO.description = ereg_replace(tmpO.description, "<img", "<img");
tmpO.description = ereg_replace(tmpO.description, "'", "'");
tmpO.description = ereg_replace(tmpO.description, """, """);
tmpO.link = getValueByRef(x.childNodes[0].childNodes[0].childNodes[i], "link");
tmpO.source = getValueByRef(x.childNodes[0].childNodes[0].childNodes[i], "source");
nArray.push(tmpO);
i++;
}
return true;
}
//
function getValueByRef(xm:XML, s:String) {
var i:Number = 0;
while (xm.childNodes[i] != undefined) {
if (xm.childNodes[i].nodeName == s) {
return (xm.childNodes[i].childNodes[0].toString());
}
i++;
}
return "";
}
//
function getNodeNumberByRef(xm:XML, s:String) {
var i:Number = 0;
while (xm.childNodes[i] != undefined)
if (xm.childNodes[i].nodeName == s) {
return i;
}
i++;
}
}
//
function getValue():Object {
return nArray;
}
//
function isLoaded() {
if (x.getBytesLoaded() == x.getBytesTotal()) {
return 100;
} else {
return x.getBytesLoaded()/x.getBytesTotal()*100;
}
}
//
function ereg_replace(s, str, rep, chr) {
var t = (chr<0) ? s.substr(chr) : s.substr(0, chr);
var s = str.length;
var r = rep.length;
var p = t.indexOf(str);
while (p != -1) {
t = t.substr(0, p)+rep+t.substr(p+s);
p = t.indexOf(str, p+r);
}
return (chr) ? (chr<0) ? s.substr(0, s.length+chr)+t : t+s.substr(chr) : t;
}
}
Historique
- 13 juillet 2004 22:37:23 :
- cette source bouge vers MX2004:CLASS
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Comparez les prix Nouvelle version
|