Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Lector Rss

Estas en el tema de Lector Rss en el foro de Frameworks JS en Foros del Web. Hola a todos!! Estaba intentando hacer un lector Rss pero no conisgo que funcione más o menos lo que tengo es una función javascript que ...
  #1 (permalink)  
Antiguo 13/04/2009, 03:04
 
Fecha de Ingreso: enero-2009
Mensajes: 148
Antigüedad: 15 años, 3 meses
Puntos: 0
Lector Rss

Hola a todos!!

Estaba intentando hacer un lector Rss pero no conisgo que funcione más o menos lo que tengo es una función javascript que recoge la url del feed que el usuario introduzca y hago una llamada AJAX para abrir esa url y que la respuesta me devuelva el xml simplemente y despues pueda procesar el xml para mostrarlo a mi gusto.

Pero creo que la llamada open no se llega a realizar..

Código:
...
url ="http://news.google.com/news?ned=es&output=rss";
request.open('GET', url,true);
request.onreadystatechange = function(){
                           
     var obj ={};
     if (request.readyState == 4 ){
        if (request.status == 200){
            obj={
               data:request.responseXML,
               error: request.status,
               text: request.responseText
             }
             procesar(obj);
         }
    }
}

y lo que queria era obtener en el obj.data que fuese el xml del estilo

Código:
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
    <rss version="2.0">
        <channel>
            <title>Nombre del sitio</title>
            <description>Descripción del sitio.</description>
            <link>http://www.nombresitio.com</link>

            <item>
                <title>Titulo del post</title>
                <link>http://www.nombresitio.com?ID=12</link>
                <pubDate>2007-11-24T08:12:24.323Z</pubDate>
                <description> descripcion corta del post</description>
            </item>
            
            <item>
            ... Title / link / pubDate / Description ...
            </item>
            (...) Un montón de entradas... (una por articulo)
       </channel>
    </rss>
¿Cómo puedo hacer para abrir la url y así poder crear el objeto y procesarlo?
  #2 (permalink)  
Antiguo 13/04/2009, 05:16
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Lector Rss

No sé si será que no lo has puesto aquí o que realmente te falta, pero después de hacer el open y tal, tienes que hacer un
Código:
request.send();
para que se lance la petición.
  #3 (permalink)  
Antiguo 13/04/2009, 07:29
 
Fecha de Ingreso: enero-2009
Mensajes: 148
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Lector Rss

Si si el request.send() lo tengo puesto ha sido un descuido al copiar.!

La cosa es eso que yo creo que al ser un url externa no pueda abrirla.... pero no estoy seguro si es eso. Y en el caso de que sea ese el motivo de que no funcione como hago para abrir la url y obtener el xml del rss. Para poder asignarselo a obj

Se puede hacer con AJAX abriendo la dirección? o tengo que abrir la página desde un servlet en mi caso y coger todo el contenido y despues enviarlo mediante una respuesta de AJAX?..

Última edición por dablin; 14/04/2009 a las 09:09
  #4 (permalink)  
Antiguo 15/04/2009, 09:37
 
Fecha de Ingreso: enero-2009
Mensajes: 148
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Lector Rss

Buenas como no he conseguido solucionar el problema había pensado lo siguiente.

Hacer una llamada AJAX que llame a un servlet al cual le paso la dirección del rss. Dentro del servlet abrir esa dirección como un xml (Eso se puede?) y meter el resultado en la respuesta para que despues cogerla con el responseXML

¿Sería posible?
  #5 (permalink)  
Antiguo 15/04/2009, 10:18
 
Fecha de Ingreso: enero-2009
Mensajes: 148
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Lector Rss

He encontrado una página para intentar solucionar el problema primero

http://ajax.phpmagazine.net/2005/11/...by_step_t.html

pero aunque he añadido una cosa que me faltaba

Código:
data:request.responseXML.documentElement
sigue sin funcionar es raro porque la llamada AJAX nunca entra en

Código:
 req2.onreadystatechange = function(){ ..... }
puse un alert para que se mostrase pero nunca salta... la verdad que no se cual podrá ser el error.

Si a alguien se le ocurre.. algo!

Última edición por dablin; 15/04/2009 a las 10:50
  #6 (permalink)  
Antiguo 15/04/2009, 11:10
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Lector Rss

A ver, pon el código completo tal como lo tienes ahora.
  #7 (permalink)  
Antiguo 15/04/2009, 11:25
 
Fecha de Ingreso: enero-2009
Mensajes: 148
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Lector Rss

Código:
function makerequest (url, procesar){
                      
                    req2 =  newXMLHttpRequest();
                    req2.open('GET', url,true);
                    req2.onreadystatechange = function(){
                     alert("entra?");
                      if (req2.readyState == 4 ){
                           if (req2.status == 200){
                                  procesar(req2.responseXML.documentElement)
                           
                             }
                           }
                    }   
                         req2.send(null);                        
   }
Esa es la función AJAX que llamo: le paso la url del rss y la funcion procesar que se encarga de procesar el xml de la respuesta
  #8 (permalink)  
Antiguo 15/04/2009, 12:07
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Lector Rss

Oh, vale... Perdona porque sé que lo has dicho tú mismo al principio, pero no me fijé. Estoy un poco dormido...

Efectivamente no puedes cargar la URL de otro dominio así. Tendrías que tener algún tipo de script en tu servidor (en el lado del servidor) que te lea el feed y te lo devuelva. Puedes hacerlo con un servlet, sí, o con PHP o con lo que prefieras.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:10.