Código:
Asi mismo aqui les dejo el codigo del archivo XML /** * * Librería AjaxLib v 1.0 * * Realiza peticiones AJAX de manera sencilla y automática. * * @author Maximiliano R. Firtman [email protected] * */ /** Especifica opciones para tipoRespuesta */ var $tipo = { XML: 0, TEXTO: 1, JSON: 2 } /** Especifica opciones para método */ var $metodo = { GET: "GET", POST: "POST" } /** * Realiza un nuevo requerimiento AJAX a la url especificada * con las opciones definidas * @param {String} url La URL a donde realizar la petición * @param {Object} opciones Un objeto JSON con los atributos opcionales que queremos definirle. * * opciones disponibles: * id: Un identificador interno para ser recibido junto a los datos * metodo: $metodo.POST o $metodo.GET * tipoRespuesta: $tipo.TEXTO, $tipo.JSON o $tipo.XML * parametros: un string en formato URL o un objeto Hash * cache: true o false * avisoCargando: define el id de un elemento que queremos usar * como cartel de "Cargando" mientras la petición se hace * onfinish: función a ejecutarse cuando se reciban los datos. * Esta función recibirá el Texto, JSON o XML recibido y el id de la petición. * onerror: función a ejecutarse cuando ocurra un error. * Esta función recibe un objeto con detalles del error y el id de la petición */ function $Ajax(url, opciones) { // Preguntamos si no quiere Caché if (__$P(opciones, "cache", true)==false){ // Agregamos un parámetro random a la URL // Ponemos ? o & según ya haya parámetro anteriores var caracter = "?"; if (url.indexOf("?")>0) caracter = "&"; url += caracter + Math.random(); } var metodo = __$P(opciones, "metodo", $metodo.GET); var parametros = __$P(opciones, "parametros"); // Genera JSON de propiedades necesarias para Prototype // En un futuro puede ser reemplazado por otra librería var protoOpc = { method: metodo, onSuccess: __$AjaxRecibir.bind(this, opciones), onException: __$AjaxError.bind(this, opciones), onFailure: __$AjaxError.bind(this, opciones) } // Si se definieron los parámetros los agregamos if (parametros!=undefined) { protoOpc.parameters = parametros; } // Genera la nueva petición vía Prototype var peticion = new Ajax.Request(url, protoOpc); // Prende el cartel de Cargando, si existiera if (__$P(opciones, "avisoCargando")!=undefined) { __$AjaxCargando(opciones.avisoCargando, true); } } /** * Función interna que se encarga de recibir la petición lista * desde Prototype y ejecutar el evento onfinish de la petición */ function __$AjaxRecibir(opciones, xhr) { // Si se ejecuta este método estamos seguros que // readyState==4 y status==200 // Apagamos cartel de Cargando si existiera if (__$P(opciones, "avisoCargando")!=undefined) { __$AjaxCargando(opciones.avisoCargando, false); } // Traemos la función onfinish si fue definida var funcionRetorno = __$P(opciones, "onfinish"); // Traemos el identificador de la petición si fue definido var id = __$P(opciones, "id"); if (funcionRetorno!= undefined) { // Si el usuario indicó que quiere recibir la respuesta // Suponemos TEXTO como tipo por defecto. var tipoRespuesta = __$P(opciones, "tipoRespuesta", $tipo.TEXTO); switch(tipoRespuesta) { case $tipo.TEXTO: funcionRetorno(xhr.responseText, id); break; case $tipo.XML: funcionRetorno(xhr.responseXML, id); break; case $tipo.JSON: // Intentamos evaluar el JSON por si no es válido var objeto; try { objeto = xhr.responseText.evalJSON(); } catch (e) { __$AjaxError(opciones, xhr, {code: -1, message: "JSON No válido" }); return; } funcionRetorno(objeto, id); } } } /** * Función interna que se encarga de prender o apagar el cartel * de Cargando, si existiera */ function __$AjaxCargando(cartel, prender) { if (prender) { $(cartel).show(); } else { $(cartel).hide(); } } /** * Función interna que se encarga de recibir la ejecución * cuando ocurra algún error en la petición desde Prototype */ function __$AjaxError(opciones, xhr, excepcion) { // Apagamos cartel de Cargando si existiera if (__$P(opciones, "avisoCargando")!=undefined) { __$AjaxCargando(opciones.avisoCargando, false); } // Cuando se trata de un error de servidor, no hay excepción if (excepcion==undefined) { // Supongo error de HTTP, genero mensaje propio excepcion = {code: xhr.status, message: "Error del servidor"} } // Consulto si estaba definida el evento onerror var funcionError = __$P(opciones, "onerror"); if (funcionError!=undefined) { funcionError(excepcion, __$P(opciones, "id")); } } /** * Función interna que se encarga de entregar un parámetro opcional * desde una colección tipo JSON, con un valor por defecto */ function __$P(coleccion, parametro, defecto) { if (coleccion==undefined) { return defecto; } else { if (coleccion[parametro]==undefined) { return defecto; } else { return coleccion[parametro]; } } }
Código:
Cuando lo converti a PHP lo unico que hice fue colocar todo en un ECHO<?xml version="1.0" encoding="iso-8859-1"?> <rss version="2.0"> <channel> <title><![CDATA[ELPAIS.com - Última Hora]]></title> <link><![CDATA[http://www.elpais.com/loultimo/]]></link> <description><![CDATA[ELPAIS.com - Última Hora]]></description> <language>es-es</language> <copyright><![CDATA[Copyright PRISACOM S.A]]></copyright> <ttl>15</ttl> <image> <url>http://www.elpais.com/im/tit_logo.gif</url> <title>ELPAIS.com - Última Hora</title> <link>http://www.elpais.com</link> </image> <item> <title><![CDATA[Un bebé con licencia de armas]]></title> <link><![CDATA[http://www.elpais.com/articulo/internacional/bebe/licencia/armas/elpepuint/20070516elpepuint_10/Tes]]></link> <description><![CDATA[El pequeño Bubba Ludwig, de 10 meses, recibió de su abuelo una herencia peculiar: una escopeta. Su padre, Howard, empezó a preocuparse por que su retoño no pudiera disfrutar pronto del regalo, así que solicitó para él una licencia de armas. No tenía muchas esperanzas de conseguirlo, pero rellenó la solicitud <i>on-line</i>, pagó los 5 dólares y el permiso fue suyo, según informa la web <i>BBC NEWS</i>.]]></description> <guid isPermaLink="true"><![CDATA[http://www.elpais.com/articulo/internacional/bebe/licencia/armas/elpepuint/20070516elpepuint_10/Tes]]></guid> <author><![CDATA[ELPAIS.com/AGENCIAS <[email protected]>]]></author> <pubDate><![CDATA[Wed, 16 May 2007 18:28:00 +0200]]></pubDate> </item> <item> <title><![CDATA[La PS3 y las baterías de litio lastran el crecimiento de Sony]]></title> <link><![CDATA[http://www.elpais.com/articulo/internet/PS3/baterias/litio/lastran/crecimiento/Sony/elpeputec/20070516elpepunet_8/Tes]]></link> <description><![CDATA[Los beneficios de Sony crecieron en 2006 menos de lo esperado. .]]></description> <guid isPermaLink="true"><![CDATA[http://www.elpais.com/articulo/internet/PS3/baterias/litio/lastran/crecimiento/Sony/elpeputec/20070516elpepunet_8/Tes]]></guid> <author><![CDATA[EFE / ELPAIS.com <[email protected]>]]></author> <pubDate><![CDATA[Wed, 16 May 2007 18:26:00 +0200]]></pubDate> </item> </channel> </rss>
quedo asi:
Código PHP:
<?php
echo"<?xml version='1.0' encoding='iso-8859-1'?>
.
.
.
.
.
</channel>
</rss>";
?>
asi mismo les agrego el HTML todo lo tengo en carpetas distintas...
Espero me puedan ayudar...
Código HTML:
<!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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>RSS</title> <script type="text/javascript" src="../js/prototype.js"></script> <script type="text/javascript" src="../js/ajax.js"></script> <script type="text/javascript" src="lector.js"></script> <script type="text/javascript" src="../js/src/scriptaculous.js?load=effects"></script> <link href="rss.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="divTitulo"></div> <input type="button" value="Actualizar" id="btnActualizar" /> <div id="divContenedor"> <div id="divItems"></div> <div id="divDetalle"> <div id="lblTituloItem"></div> <div id="lblTextoItem"></div> <div id="lblFechaItem"></div> <div id="lblLinkItem"></div> </div> </div> <div id="divLoading" style="display: none">Por Favor Espere...</div> </body> </html>
Help