begin process at 2012 05 26 03:47:10
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

MX2004: CLASS

 > CLASS RDFPARSER (CLASS DE LECTURE DE FLUX RSS/RDF 1.0)

CLASS RDFPARSER (CLASS DE LECTURE DE FLUX RSS/RDF 1.0)


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :MX2004: CLASS Niveau :Initié Date de création :29/04/2004 Date de mise à jour :13/07/2004 22:36:25 Vu :4 282

Auteur : BlackWizzard

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note


 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://fluxrss1.0");
x.onLoad = function() {
    var rdf = new rdfParser(x);
}
  
La methode rdfInfo() 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

  • // rdfParser.as
  • //
  • // @author: BlackWizzard
  • // @description: analyse un flux rss 1.0 (rdf)
  • class rdfParser {
  • public var xmlFile:String;
  • public var x:XML;
  • public var nObject:Object;
  • public var nArray:Array;
  • //
  • function rdfParser(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 = 1;
  • while (x.childNodes[0].childNodes[i] != undefined) {
  • var tmpO:Object = new Object();
  • tmpO.titre = getValueByRef(x.childNodes[0].childNodes[i], "title");
  • tmpO.description = ereg_replace(getValueByRef(x.childNodes[0].childNodes[i], "description"), "\n", "");
  • tmpO.description = ereg_replace(tmpO.description, "a>", "a>");
  • tmpO.description = ereg_replace(tmpO.description, "&lt;a", "<a");
  • tmpO.description = ereg_replace(tmpO.description, "u&gt;", "u>");
  • tmpO.description = ereg_replace(tmpO.description, "&lt;u", "<u");
  • tmpO.description = ereg_replace(tmpO.description, "i&gt;", "i>");
  • tmpO.description = ereg_replace(tmpO.description, "&lt;i", "<i");
  • tmpO.description = ereg_replace(tmpO.description, "b&gt;", "b>");
  • tmpO.description = ereg_replace(tmpO.description, "&lt;b", "<b");
  • tmpO.description = ereg_replace(tmpO.description, "img&gt;", "img>");
  • tmpO.description = ereg_replace(tmpO.description, "&lt;img", "<img");
  • tmpO.description = ereg_replace(tmpO.description, "&apos;", "'");
  • tmpO.description = ereg_replace(tmpO.description, "&quot;", "\"");
  • tmpO.link = getValueByRef(x.childNodes[0].childNodes[i], "link");
  • tmpO.source = getValueByRef(x.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++;
  • }
  • return -1;
  • }
  • //
  • 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;
  • }
  • }
// rdfParser.as
//
// @author: BlackWizzard
// @description: analyse un flux rss 1.0 (rdf)
class rdfParser {
	public var xmlFile:String;
	public var x:XML;
	public var nObject:Object;
	public var nArray:Array;
	//
	function rdfParser(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 = 1;
		while (x.childNodes[0].childNodes[i] != undefined) {
			var tmpO:Object = new Object();
			tmpO.titre = getValueByRef(x.childNodes[0].childNodes[i], "title");
			tmpO.description = ereg_replace(getValueByRef(x.childNodes[0].childNodes[i], "description"), "\n", "");
			tmpO.description = ereg_replace(tmpO.description, "a&gt;", "a>");
			tmpO.description = ereg_replace(tmpO.description, "&lt;a", "<a");
			tmpO.description = ereg_replace(tmpO.description, "u&gt;", "u>");
			tmpO.description = ereg_replace(tmpO.description, "&lt;u", "<u");
			tmpO.description = ereg_replace(tmpO.description, "i&gt;", "i>");
			tmpO.description = ereg_replace(tmpO.description, "&lt;i", "<i");
			tmpO.description = ereg_replace(tmpO.description, "b&gt;", "b>");
			tmpO.description = ereg_replace(tmpO.description, "&lt;b", "<b");
			tmpO.description = ereg_replace(tmpO.description, "img&gt;", "img>");
			tmpO.description = ereg_replace(tmpO.description, "&lt;img", "<img");
			tmpO.description = ereg_replace(tmpO.description, "&apos;", "'");
			tmpO.description = ereg_replace(tmpO.description, "&quot;", "\"");
			tmpO.link = getValueByRef(x.childNodes[0].childNodes[i], "link");
			tmpO.source = getValueByRef(x.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++;
		}
		return -1;
	}
	//
	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:36:25 :
cette source bouge vers MX2004:CLASS

 Sources du même auteur

Source avec Zip Source avec une capture SPORE-LIKE DEMO
Source avec Zip Source avec une capture LINECHART / AREACHART : COMPOSANT AS2, SOURCE XML, STYLE PAR...
Source avec Zip COURS FLASH: COMMUNICATION FLASH/PHP
Source avec Zip 3D TEMPS REEL EN AS2
Source avec Zip Source avec une capture CLASS PIECHART: CODE ET COURS (8 PAGES FLASHPAPER/WORD)

 Sources de la même categorie

Source avec Zip Source avec une capture LECTEUR MP3 AVEC LISTE DE LECTURE, STREAMING OU NON (COMPOSA... par eron
Source avec Zip ENREGISTRER DANS UN FICHIER TEXTE AVEC L'AIDE D'UN EXE par Mr_Qqn
Source avec Zip Source avec une capture CLASSE CALCULATOR par BananaTree
Source avec Zip Source avec une capture CLASS "PATERN" : PERMET LA CRÉATION DE REMPLISSAGE DE MOTIF ... par top30
Source avec Zip Source avec une capture MA CLASSE DE BASE SUR LES TEXTES ( STRINGS ) par snakeeater1

Commentaires et avis

Commentaire de TomQuick le 29/04/2004 16:46:50

Je comprend rien au code mais c'est génial alors je te met un 10/10 !

Commentaire de BlackWizzard le 29/04/2004 16:55:05 administrateur CS

mdr!
si j'ai le tps, j'ecrirai des cours sur l'as2.. mais pas avant les vacances d'été :p

Commentaire de TomQuick le 29/04/2004 17:01:33

Super !!!

Commentaire de top30 le 29/04/2004 19:51:59

Moi ce que je ne sais pas ce que sais, c est : "flux rss1.0"... Si quelqu'un pouvait m'expliquer ca serait cool ! La source cava.. Mais son but ... Pff !

Merci   = )

Commentaire de BlackWizzard le 29/04/2004 20:16:16 administrateur CS

rss 1.0: http://www.tweenpix.net/index.rdf
rss 2.0: http://www.tweenpix.net/index.xml

son utilité g deja expliké sur http://www.flashkod.com/code.aspx?ID=22140

Commentaire de afad le 30/04/2004 10:50:41

Pour top30, RSS utilise le format XML et donc jouit de la portabilité de ce langage pour permettre à differente source (Site web, messenger, logiciels windows, Palmpilot...) d'acceder aux données qu'il contient.

Celui ci (malgré ses différentes versions) respecte une certaine norme, une partie descriptive sur l'emetteur du fichiers puis la déclinaison de chaque item (news ajoutée par l'emetteur du RSS) en indiquant le titre de la news, une description de la news, et l'url du site ou elle est consultable.

Je suis en train de créer un flux RSS pour un site d'infos... Chaque news ajoutée au site est directement indexée au fichier RSS (généré par PHP). Maintenant depuis mon site web, je pourrais afficher ces news (remise à jour dynamiquement puisque chargé à distance) avec ma propre mise en page. Et oui, c'est un deuxième avantage de RSS, il dissocie l'information de la forme.....

Un exemple ici :
http://www.jeuxvideo.com/jvxml.htm

Tu repérera toujours un flux RSS par une icone orange XML... Cette technologie crée en 1999 s'est considérablement développée avec les blogs.

J'espère avoir un peu éclairé ta lanterne top30
A+
aFad

Commentaire de top30 le 30/04/2004 11:11:57

Apparement c est simplement une "norme" d'écriture de fichier XML, pour pouvoir créer une total compatibilité sur différente machines. C'est de la gestion d'infos appellé  "news"...

Merci a tous pour votre aide...

Commentaire de tom le 30/04/2004 12:00:28 administrateur CS

Tiens, c'est marrant ca, c'est aussi par jeuxvideo que j'ai decouvert le flux RSS...

Commentaire de afad le 30/04/2004 15:27:04

Fans de JV bonjour..... ;)

Je pensais à un truc, Un exemple parfait d'affichage d'un flux RSS est tout bonnement la liste des sources à la racine de flashkod....

D'ailleurs Je viens de voir qu'il était possible d'avoir cette liste sur son site à l'aide d'un script js executant des document.write;

Alors ? A quand le flux RSS de CS.

Commentaire de BlackWizzard le 30/04/2004 18:26:47 administrateur CS

g demandé ça ya 5 jours sur la board des admins... et c pas en projet, apparement le flux js ça leur suffit...
grrr

Commentaire de tom le 01/05/2004 12:48:39 administrateur CS

ah ca je sais, ca fait un bail que j'ai laissé tomber toute sugestion pour du flash dans CS... Pourtant, je suis convaincu qu'on pourrait faire qquechose de vraiment rapide, stable, ergonomique, mais bon...

Commentaire de top30 le 01/05/2004 13:37:14

Putain oui !
Qu on fasse le PREMIER oui en Flash qui parle de Flash.. ! Pourquoi cela ne se fait pas si tant de personne le souhaite ???

Commentaire de BlackWizzard le 01/05/2004 14:20:09 administrateur CS

les admins en chef sont debordés...
g demandé d'ajouter la categorie "class" sur flashkod, deja ça c trop long apparement...
codes-sources part en couille...

Commentaire de tom le 01/05/2004 15:34:46 administrateur CS

On ne peut pas leur en vouloir. codes source est enorme, et sa gestion est en consequence...

Commentaire de superchinois69 le 21/06/2010 11:54:32

Salut j'arrive quelques années en retard ^^
j'essaye d'apprendre, mais je trouve pas de sources pour importer correctement un flux Rss dans un site flash...

J'ai réussi à importer le fichier xml, il s'affiche dans ma zone de texte, mais c'est tout en vrac, à cause des liens et autre fonctions...
Est ce qu'on peut importer uniquement TITRE /TXT / IMG (eventuellement lien...)

Si quelqu'un peu me dépanner, merci beaucoup

(je peux éventuellement uploader ce que j'ai fait, mais c'est juste un // load("http:// __ feed.xml");

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales