Foros del Web » Programación para mayores de 30 ;) » Programación General »

Php + Xml

Estas en el tema de Php + Xml en el foro de Programación General en Foros del Web. Lo que me pasa es que estoy tratando de crear un Sistema de Noticias con PHP y MySQL. Ahora cada vez que el administrador o ...
  #1 (permalink)  
Antiguo 29/09/2004, 09:23
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 22 años
Puntos: 1
Php + Xml

Lo que me pasa es que estoy tratando de crear un Sistema de Noticias con PHP y MySQL. Ahora cada vez que el administrador o cualquier otra persona autorizada publique las noticias entonces se crea un fichero XML llamado noticias.xml con todas las noticias que se han publicado. La cosa es que me da un error que no se como resolver. El ejemplo lo tienen aqui:
http://www.jcce.granma.inf.cu/noticias.xml
me podrian ayudar con este error?

Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 29/09/2004, 09:51
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 1 mes
Puntos: 5
Si te fijas en la etiqueta <title> tienes un texto con la frase "AT&T" ... debes poner el código ISO del carácter &, es decir, "AT&amp;T "

prueba a ver si es eso
  #3 (permalink)  
Antiguo 29/09/2004, 09:53
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 1 mes
Puntos: 5
ojo, también lo he visto en la etiqueta <description>
EN php creo que hay una función que es htmlentities() que te convierte los caracteres HTML especiales a su correspondiente código ISO. Repasa el manual de PHP para ello, porque supongo que los XML los generas dinámicamente con PHP, no?
  #4 (permalink)  
Antiguo 01/10/2004, 08:39
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 22 años
Puntos: 1
Pues sip

Como dices lo genero dinamicamente con PHP. Probare y luego te dire que pasa.
Salu2
__________________
Ing. Reynier Pérez Mira
  #5 (permalink)  
Antiguo 02/10/2004, 16:15
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 22 años
Puntos: 1
Pos nada

He probado a generar el XML con PHP y donde quiera que me topo un "&" lo sustituyo por "&amp;" que es el equivalente en HTML pero nada me sigue dando ese error. Que hago mal?
Salu2
__________________
Ing. Reynier Pérez Mira
  #6 (permalink)  
Antiguo 02/10/2004, 16:35
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 21 años, 4 meses
Puntos: 2
Reynier solucione mi problema.
Yo guardaba mis datos con htmlentities, pues lo cambie por http://www.php.net/htmlspecialchars

y ya no me dio problemas.
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #7 (permalink)  
Antiguo 03/10/2004, 15:24
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 22 años
Puntos: 1
Pero...

Que es lo que guardas con htmlspecialchars la info para la BDatos o otra cosa?
Este es el codigo mediante el cual genero el XML.
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'],$row['autor'],1);
    
$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 la llamo asi
Código PHP:
PHPToRSS("noticias.xml","Noticias TinoGRM"); 
__________________
Ing. Reynier Pérez Mira
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:29.