Foros del Web » Programando para Internet » PHP »

XML desde PHP Error

Estas en el tema de XML desde PHP Error en el foro de PHP en Foros del Web. Hola gente: Estoy tratando de crear dinamicamente un arhivo XML para poner un RSS de las noticias expuestas en mi Portal. El codigo para crear ...
  #1 (permalink)  
Antiguo 05/10/2004, 21:34
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
XML desde PHP Error

Hola gente:
Estoy tratando de crear dinamicamente un arhivo XML para poner un RSS de las noticias expuestas en mi Portal. El codigo para crear el XML es este:
Código PHP:
 function PHPToRSS($filename,$tituloweb,$server="http://www.jcce.granma.inf.cu/"){
  $sid = "&jcgrmsid=".session_id();
  $handler      = fopen($filename,'w+');
  $query = "SELECT *,DAYOFMONTH(fecha_publicacion) as dia, DAYOFWEEK(fecha_publicacion) as semana, MONTH(fecha_publicacion) as mes, YEAR(fecha_publicacion) as year, DATE_FORMAT(fecha_publicacion,'%h:%i %p') as hora FROM jcgrm_noticias WHERE activa<>0 GROUP BY idcat";
  $result = mysql_query($query) or die(mysql_error());
  $rssfile = "<?xml version="1.0\" encoding=\"ISO-8859-1\"?>";
  
$rssfile.= "<rss version=\"2.0\"><channel><title>TinoGRM RSS</title><description>Noticias TinoGRM</description><link>".$server."".$filename."</link><language>es-ES</language><webMaster>Reynier Pérez Mira</webMaster><copyright>Todos los Derechos Reservados ® TinoGRM</copyright>";
   while(
$row mysql_fetch_assoc($result)){
    
$idnoticia $row['idnoticia'];
    
$titulo    $row['titulo'];
    
$resumen   nl2br($row['resumen']);
    
$fecha     UltimoMensaje($row['dia'],$row['semana'],$row['mes'],$row['year'],$row['hora'],1,$row['autor']);
    
$rssfile.= "<item>";
    
$rssfile.= "<title>".$titulo."</title>";
    
$rssfile.= "<description>".$resumen."</description>";
    
$rssfile.= "<link>".$server."noticias.php?accion=mostrar&amp;categoria=".$row['idcat']."&amp;noticia=".$row['idnoticia']."".$sid."</link>";
    
$rssfile.= "<pubDate>".$fecha."</pubDate>";
    
$rssfile.= "</item>";
  }
    
$rssfile.= "</channel></rss>";
  if(!
fputs($handler$rssfile))
  {
    echo 
"No se pudo crear el Rss";
  }
  
fclose($handler);
}
y el error que me da cuando lo abro en el browser es este:
Cita:
The XML page cannot be displayed
Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.
--------------------------------------------------------------------------------
A semi colon character was expected. Error processing resource 'http://localhost/jclubgrm/noticias.xml'. Line 1, Position 821

<?xml version="1.0" encoding="ISO-8859-1"?><rss version="2.0"><channel><title>TinoGRM RSS</title><description>Noticias TinoGRM</description><link>http://www.jcce.granma.inf.cu/noticias.xml</link><language>es-ES</language><webMaster>Reynier Pérez Mira</webMaster><copyright>Todos los Derechos Reservados ® TinoGRM</copyright><item><title>Bush y Kerry no gastan mucho en propaganda online</title><description>Las autopistas de la información se han convertido en una calle de dirección única en la campaña presidencial 2004, con el presidente George W. Bush y el candidato demócrata John Kerry recaudando dinero en Internet pero gastando muy poco en publicidad online, según un estudio publicado el lunes. </description><link>http://www.jcce.granma.inf.cu/noticias.php?accion=mostrar&amp;categoria=3&amp;no ticia=4&jcgrmsid=d855d4ed0215a6ef896e27c3e881124b</link><pubDate>Martes 5, Octubre de 2004 | 04:43 PM Por: Reynier Pérez Mira</pubDate></item><item><title>Catster, el blog de los gatos</title><description>Aunque el gato haya sido sagrado en el antiguo Egipto, más dedicación recibe en Internet en pleno siglo XXI. Al inabarcable número de sitios para gatos se suma ahora Catster. </description><link>http://www.jcce.granma.inf.cu/noticias.php?accion=mostrar&amp;categoria=4&amp;no ticia=5&jcgrmsid=d855d4ed0215a6ef896e27c3e881124b</link><pubDate>Martes 5, Octubre de 2004 | 04:44 PM Por: Reynier Pérez Mira</pubDate></item><item><title>Industria aumenta el presupuesto para la Sociedad de la Información en un 1%</title><description>El Ministerio de Industria, Turismo y Comercio destinará el próximo año algo más de 373,1 millones euros a Investigación y Desarrollo de la Sociedad de la Información, un 1% más que en 2004 y en torno al 7,3% del presupuesto general del Departamento para 2005. Del total, 60 millones corresponden a la Estrategia Nacional de Banda Ancha. </description><link>http://www.jcce.granma.inf.cu/noticias.php?accion=mostrar&amp;categoria=5&amp;no ticia=6&jcgrmsid=d855d4ed0215a6ef896e27c3e881124b</link><pubDate>Martes 5, Octubre de 2004 | 04:45 PM Por: Reynier Pérez Mira</pubDate></item><item><title>Yahoo vs Google</title><description>Yahoo, inmerso en una feroz batalla con el buscador líder de Internet Google por ganar mercado, presentó el lunes una versión de prueba de su servicio de búsquedas que ayuda a los usuarios a personalizar los resultados. </description><link>http://www.jcce.granma.inf.cu/noticias.php?accion=mostrar&amp;categoria=6&amp;no ticia=1&jcgrmsid=d855d4ed0215a6ef896e27c3e881124b</link><pubDate>Martes 5, Octubre de 2004 | 04:39 PM Por: Reynier Pérez Mira</pubDate></item><item><title>La próxima edición de Tecnimap se celebrará en Sevilla</title><description>La capital hispalense albergará, en el año 2006, la muestra de Nuevas Tecnologías en las Administraciones Públicas, según confirmó el Ministerio de Administraciones Públicas durante la clausura de la edición de este año, Tecnimap 2004. La Consejería de Justicia y Administración Pública de la Junta de Andalucía prevé que a dicha muestra acudirán más de 6.000 profesionales del sector. </description><link>http://www.jcce.granma.inf.cu/noticias.php?accion=mostrar&amp;categoria=7&amp;no ticia=8&jcgrmsid=d855d4ed0215a6ef896e27c3e881124b</link><pubDate>Martes 5, Octubre de 2004 | 04:46 PM Por: Reynier Pérez Mira</pubDate></item><item><title>El nuevo código penal crea incertidumbre en la red</title><description>El nuevo código penal, que entró en vigor el pasado uno de octubre, está generando interpretaciones alarmistas en Internet. <br />
------^
y cuando lo abro desde un lector de RSS este otro:
Cita:
An error occured.
Error message: The file is not a valid XML document!
Error source: Error on line 1: The reference to entity "jcgrmsid" must end with the ';' delimiter.
que hago mal?
Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 06/10/2004, 02:08
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

El problema es que al añadir el sid, de la forma que tienes configurado PHP, estas añadiendo & como separador de parametros, cuando por ser xml deberia ser &amp; , como lo estas poniendo al resto de parametros. Modifica donde creas la variable $sid.

De todas formas, ¿por que añades el SID en los links? Estas creando un fichero estatico, por lo que las sesion puede estar caducada cuando la gente lo lea. Y en el peor de los casos, el que siga ese link no sera el mismo usuario que creo el fichero rss. Asi que creo que pasar el ID de sesion en este caso es inutil. Es como en el caso de los links en los resultados de google con el ID de sesion, no sirven de nada, incluso estorban.

Saludos.

PD: La razon del fallo es que en XML toda cadena que empieze por & es tomado como una entidad y debe finalizar en ;. Y en tu caso &jmcsid no finaliza en ;. Es como si hubieses puesto &amp sin el ;.
__________________
Josemi

Aprendiz de mucho, maestro de poco.

Última edición por josemi; 06/10/2004 a las 02:09
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 14:53.