¿Quieres registrarte?

Lector de feeds RSS en AJAX con JQuery

Por: gcm
26 de Abril del 2007
346 de clabLevel
Otros artículos de gcm
10,529 visitas

JQuery es una liviana librería de JavaScript, pensada para interactuar con los elementos de una Web por medio del DOM. Lo que la hace tan especial es su sencillez y su reducido tamaño.

Para que vean cuan sencillo es JQuery, aquí les va este pequeño webtip. Tomando como base el tutorial de scx7:


El cual modifiqué un poco (espero que no le moleste) y lo volví a escribir en JQuery, les recomiendo que lean el tutorial antes de seguir.

El PHP:


Código :

<?php
   [color=olive]//aqui va la URI del blog gestionado por WordPress
   $filename = "http://www.cristalab.com/rss.php";
   header("Content-type:text/xml");
   readfile ($filename);
?>

El XHTML


Código :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"lang="es" xml:lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Lector RSS con AJAX</title>
<script language="JavaScript" type="text/javascript" src="js/jquery.js"></script>
<script language="JavaScript" type="text/javascript" src="js/lector_rss.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="rss">
   <load>Cargando...</load>
</div>
</body>
</html>

El JavaScript


Código :

$(document).ready(function (){[color=olive]//cuando el documento este listo
   var url="blog.php";[color=olive]//inicio la url de donde estará la dirección del rss
   cargar_pagina(url, "#rss");[color=olive]//función que carga el rss (el#, es para indicar que es un id)
});
function cargar_pagina(url,id_contenedor){
   var xml = $.ajax({//comienzo el AJAX y le asigno sus propiedades
      url: url,// la url
      success: function(xml){// cuando tenga éxito
         $(id_contenedor).html("");//borro el mensaje cargando...
         cargar_rss(xml, id_contenedor);//llamo la función que me mostrara las entradas
      }
   });
}
function cargar_rss(xml, id_contenedor){
   var limit = xml.getElementsByTagName('item').length;//obtengo la cantidad de entradas
   var rss = "";//comienzo el string
   for (var l=1; l<=limit; l++){// un for desde 1 hasta la cantidad de entradas
      //obtengo titulo vinculo fecha de publicación y descripción
      var title = xml.getElementsByTagName('title').item(l+1).firstChild.data;
      var url = xml.getElementsByTagName('link').item(l+1).firstChild.data;
      var pubDate = xml.getElementsByTagName('pubDate').item(l-1).firstChild.data;
      var description = xml.getElementsByTagName('description').item(l+1).firstChild.data;
      var date = pubDate.split(" +");//no se para que pero estaba en el tutorial
      rss = "<fecha>"+date[0]+"<fecha><br/><titulo><a href=\""+url+"\">"+title+"</a></titulo><br/><descripcion>"+description+"</descripcion><hr />";//relleno el string con la información
      $(id_contenedor).append(rss);//lo agrego en el contenedor
   }
}

El CSS


Código :

#rss{
   font-size:10px;
   font-family:Verdana, Arial, Helvetica, sans-serif;
   width:800px;
   height:auto;
   padding-left:15px;
   padding-top:40px;
   padding-right:10px;
   border:1px solid #0033FF;
   margin:0 auto;
}
titulo{
   font-weight:bold;
   color:#FF0000;
}
descripcion{
   color:#000000;
}
fecha{
   color:#999999;
}
enlace a{
   color:#003399;
   margin-left:180px;
}
next a{
   color:#006699;
   margin-left:180px;
   text-decoration:none;
}
load{
   color:#003366;
}


Espero les sirva de algo. A mi si me sirvió :)

Enviar a twitter Enviar a facebook


También te interesa


Etiquetas javascript ajax jquery

Comentarios | Enviar un comentario
Buen tip. Aunque una pequeña explicación sobre que parte del código has reescrito en JQuery hubiese estado bien. ;)
Por: Zguillez
todo el codigo javascript, esta en Jquery,
Por: gcm

gcm :

todo el codigo javascript, esta en Jquery,
No, las funciones son javascript normal con DOM, no usan nada de jquery
Por: Freddie
la verdad no sé si viene al caso preguntar en este tema lo siguiente pero he creado un blog y necesito saber como hago para incluirle las famosas RSS para que mis lectores esten actualizados si alguien me puede ayudar de antemano GRACIAS! :cool:
Por: jovargas
$(id_contenedor).append(rss)

eso es javascript? no eso es jQuery
Por: gabo_blog
Hola, alguien podria ayudarme a cambiar el codigo que tengo de prototype a jquery?.. es una navegacion en frames, cagradas con ajax y con un control de pausa,play, next y prev. pero no he podido saber como hacerlo con jquery... podrias ayudarme?.. aqui abajo esta el link, para aquella persona que se anime.. gracias!!

http://groups.google.com/group/jquery-en/browse_thread/thread/f68c82066ed64919

mi mail italoc(at)gmail.com
Por: itcaso_blog
luisa:~# cat /usr/local/bin/lanzador
#!/bin/sh
ps -ef|grep calcula|grep -v grep 2>
Por: rodrigo_blog
var rss = "";//comienzo el string


¿Eso es Jquery? No, eso es javascript.

El código tiene partes en javascript puro y partes en Jquery.

gabo_blog, tomate el colacao que te veo perdido.
Por: ASDW-blog
Gente, no puedo hacer que lea esta direccion: http://www.24con.com/files/rss/ciudaddebuenosaires.xml

Ejemplo:

?php
[color=olive]//aqui va la URI del blog gestionado por WordPress
$filename = "http://www.24con.com/files/rss/ciudaddebuenosaires.xml";
header("Content-type:text/xml");
readfile ($filename);
?>
Por: Gaston-blog
Wow!!!!!!!!!!!!1

Excelente!!!! .....
Por: Albertcito-blog
El que esta hecho solo con javascript esta mucho mejor que el con jquery, pues muestra 3 y tiene el botón siguiente y cambia sin recargar la página,

Y no entiendo esto de tu código:

[color=olive]//aqui va la URI del blog gestionado por WordPress


¿?
Por: Albertcito-blog
Y lo ultimo, no funciona con IE6 ,.... en cambio http://www.cristalab.com/tutoriales/172/lector-de-feeds-rss-en-ajax.html este si funciona!!!! ....

...
Por: Albertcito-blog
si vas a robar algo, hacelo bien, eso es jquery a medias. con tal de postear, ultimamente ponen cualquier cosa.
Por: argento-blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.