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

empezando con xml

Estas en el tema de empezando con xml en el foro de Programación General en Foros del Web. tengo 1 archivo rss.xml q le meto esto: <?Header ("Content-type: text/xml");?> <?echo '<';?> ?xml version="1.0" encoding="ISO-8859-1"?> <? consultar BD.................... ................... ................. echo '<rss version="2.0"> <channel> ...
  #1 (permalink)  
Antiguo 24/01/2007, 12:39
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
empezando con xml

tengo 1 archivo rss.xml q le meto esto:

<?Header ("Content-type: text/xml");?>

<?echo '<';?> ?xml version="1.0" encoding="ISO-8859-1"?>

<?
consultar BD....................
...................
.................

echo '<rss version="2.0">
<channel>
<title>wwwcom</title>
<link>http://www.miurl.com/</link>
<language>es-CL</language>
<description>Descripción de nuestro blog o web</description>
<generator>Autor del RSS</generator>
<item>
<title>'.$row[titulo].'</title>
<link>http://www.miurl.com/noticias.php?id='.$row[id_post].'</link>
<comments>http://www.miurl.com/comentarios.php?id='.$row[id_post].'
</comments>
<pubDate>'.$row[fecha].'</pubDate>
<category>'.$row[categoria].'</category>
<guid>http://www.miurl.com/comentarios.php?id='.$row[id_post].'</guid>
<description><![CDATA]'.$descripcion].']></description>
<content:encoded><![CDATA]'.$row[articulo].']></content:encoded>
</item></channel></rss>';

?>


me sale este error:

_______________

No se puede mostrar la página XML
No se puede ver la entrada XML con la hoja de estilo . Corrija el error y haga clic en el botón Actualizar, o inténtelo de nuevo más tarde.


--------------------------------------------------------------------------------

No se admiten espacios en blanco en esta ubicación. Error al procesar el recurso http://localhost/www/actualidad/rss.xml. L...

<?
  #2 (permalink)  
Antiguo 24/01/2007, 13:45
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Re: empezando con xml

Mirá el código fuente que te esté sacando ese script y pegalo en un post para ver que está mandando mal el script...

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 24/01/2007, 14:30
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Re: empezando con xml

te refieres a esto?

<?
$db_direccion = 'XX.XXX.XXX.XX';
$db_user = 'Xxxxxxxx';
$db_pass = '********';
$db_name = 'Xxxxxxxx';
$db_table = 'phpnews_news';
$db_campo_fecha = 'time';
$db_campo_titulo = 'subject';
$db_campo_texto = 'maintext';
$db_campo_url = 'id';
$pg_titulo = 'PEÓNDEDAMA.COM - AJEDREZ DIGITAL';
$pg_autor = 'Copyleft - Manel García 2006';
$pg_link = 'http://www.peondedama.com';
$pg_descripcion = 'Noticias y otras cosas sobre Ajedrez...';
$pg_idioma = 'es';
if ( isset ($_REQUEST['perPage']) ){
$perPage = $_REQUEST['perPage'];
} else {
$perPage = 13;
}
header( "Content-type: text/xml");
echo '<'; ?>?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
<channel>
<title><?=$pg_titulo?></title>
<editor_noticias><?=$pg_autor?></editor_noticias>
<link><?=$pg_link?></link>
<description><?=$pg_descripcion?></description>
<language><?=$pg_idioma?></language>
<?
mysql_connect($db_direccion,$db_user,$db_pass);
mysql_select_db($db_name);
$sql="SELECT * FROM $db_table ORDER BY $db_campo_fecha DESC LIMIT 0,$perPage";
$qry = mysql_query($sql);
if (mysql_num_rows($qry))
while ($row=mysql_fetch_array($qry)){
echo "\n";
echo " <item>\n";
echo " <title>".$row[$db_campo_titulo]."</title>\n";
$desc = str_replace("\n",'',$row[$db_campo_texto]);
$desc = str_replace("\r",'',$desc);
$desc = substr($desc,0,999);
$desc = htmlentities($desc);
echo " <description>".$desc."</description>\n";
echo " <link>http://www.peondedama.com/index.php?action=fullnews?id=".$row['id']."</link>\n";
echo " </item>\n";
}
?>
</channel>
</rss>
  #4 (permalink)  
Antiguo 24/01/2007, 15:33
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Re: empezando con xml

No, me refiero al código fuente que saca tu programa, que tira error en el navegador...Puedes capturarlo cambiando el header, en vez de enviar XML (que se interprete) mandalo como texto plano, con lo cual el nbavagador mostrará el XML generado por tu aplicación...

Una vez eso fijate donde está el error...Para luego ver que función de tu sistema genera ese error...

Espero que te sirva

Saludos
__________________
Esteban Quintana
  #5 (permalink)  
Antiguo 24/01/2007, 17:02
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Re: empezando con xml

pues no sé si te entiendo bien, ejecuto el archivo .xml y me sale el error q antes he puesto, si voy a ver código fuente con el botón dcho. veo esto:

Código PHP:
<?
$db_direccion 
'XX.XXX.XXX.XX';   
$db_user 'Xxxxxxxx';   
$db_pass '********';   
$db_name 'Xxxxxxxx';   
$db_table 'phpnews_news';   
$db_campo_fecha 'time';   
$db_campo_titulo 'subject';   
$db_campo_texto 'maintext';   
$db_campo_url 'id';  
$pg_titulo 'PEÓNDEDAMA.COM - AJEDREZ DIGITAL';   
$pg_autor 'Copyleft - Manel García 2006';  
$pg_link 'http://www.peondedama.com';   
$pg_descripcion 'Noticias y otras cosas sobre Ajedrez...';   
$pg_idioma 'es';   
if ( isset (
$_REQUEST['perPage']) ){   
$perPage $_REQUEST['perPage'];   
} else {   
$perPage 13;   
}   
header"Content-type: text/xml");   
echo 
'<'?>?xml version="1.0" encoding="ISO-8859-1"?>   
<rss version="2.0">   
<channel>   
<title><?=$pg_titulo?></title>   
<editor_noticias><?=$pg_autor?></editor_noticias>  
<link><?=$pg_link?></link>   
<description><?=$pg_descripcion?></description>   
<language><?=$pg_idioma?></language>   
<?   
mysql_connect
($db_direccion,$db_user,$db_pass);  
mysql_select_db($db_name);   
$sql="SELECT * FROM $db_table ORDER BY $db_campo_fecha DESC LIMIT 0,$perPage";   
$qry mysql_query($sql);   
if (
mysql_num_rows($qry))   
while (
$row=mysql_fetch_array($qry)){   
echo 
"\n";   
echo 
" <item>\n";   
echo 
" <title>".$row[$db_campo_titulo]."</title>\n";   
$desc str_replace("\n",'',$row[$db_campo_texto]);   
$desc str_replace("\r",'',$desc);   
$desc substr($desc,0,999);   
$desc htmlentities($desc);   
echo 
" <description>".$desc."</description>\n";   
echo 
" <link>http://www.peondedama.com/index.php?action=fullnews?id=".$row['id']."</link>\n";   
echo 
" </item>\n";   
}   
?>   
</channel>   
</rss>
¿¿¿¿????

y si le quito ell header me sale lo mismo...

Última edición por jam1138; 27/01/2007 a las 20:45 Razón: Favor de encerrar código
  #6 (permalink)  
Antiguo 24/01/2007, 17:52
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Re: empezando con xml

El código fuente del navegador te tira cosas como

echo " ???????

Te está tirando el código fuente de PHP !!! No debería de hacer eso...

Sería bueno que preguntaras por PHP a ver que estás haciendo mal...

Saludos
__________________
Esteban Quintana
  #7 (permalink)  
Antiguo 26/01/2007, 00:41
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Re: empezando con xml

Cita:
Iniciado por humanista Ver Mensaje
tengo 1 archivo rss.xml q le meto esto:
Es un archivo XML, no puedes meterle código PHP...
Primero al código PHP encierralo entre las etiquetas <?php y ?>, no entre <? y ?> que es lo que tienes ahora.
Una vez hecho eso prueba cambiar la extención de tu arhivo a .php que es como tiene que ser*, a ver si con eso vá.

Por favor utiliza las etiquetas adecuadas para mostrar código.


* Se le puede indicar al servidor que tambien interprete archivos .xml como .php, pero esa no sería la idea; tema aparte.

Suerte .
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 26/01/2007, 05:18
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Re: empezando con xml

bien, cambio la ext a .php, pongo <?php y ?> pero tengo q poner esto?:

header( "Content-type: text/xml")

yo quiero generar un archivo .xml consultando una base de datos con sql y php

en ese caso?, cómo lo hago?, pq creo q m da errores a la hora de mezclar sql y php con lenguaje xml
  #9 (permalink)  
Antiguo 26/01/2007, 10:11
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Re: empezando con xml

tenés que hacer un archivo PHP que al ejecutarse se conecte a la base de datos y devuelva esa información en formato XML...

Un XML no puede directamente conectarse a la base de datos y ejecutar PHP...

Saludos
Cita:
Es un archivo XML, no puedes meterle código PHP...
Dios que vergüenza que me da el no haberme dado cuenta...
__________________
Esteban Quintana
  #10 (permalink)  
Antiguo 26/01/2007, 17:49
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Re: empezando con xml

gracias, ya parece q m va funcionando... preguntas

1.- para q sirve header( "Content-type: text/xml") ???

2.- Me sale bien las noticias en rss pero con el archivo de extensión .php, es correct?, lo digo pq en algunos casos lo veo con extensión .xml

3.- cuál son las etiquetas más comunes en rss y atom???

gracias
  #11 (permalink)  
Antiguo 27/01/2007, 00:46
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Re: empezando con xml

1.- header() es una función PHP que permite enviar cabeceras HTTP. "Content-type" es, precisamente, parte de la especificación HTTP. Esto sirve para indicar al cliente que lo que estas enviando es XML (text/xml) y sí, debes incluirlo.

2.- Sí, es correcto. La razón por la que debe tener extención .php es porque estas manejando código PHP y tu servidor ejecutará dicho código solo en ficheros con extención .php; es por eso que antes te entregaba igual el código PHP, porque no lo ejecutaba... ¡cuidado con la seguridad ahí!.
El hecho de se reconozca bien el contenido (RSS) a pesar de una extención que no correspónde (.php en lugar de .xml) es porque estás enviando la cabecera indicada (ver punto 1 ).
La extención es importante solo en caso de que no sea enviada una cabecera desde el servidor como para que sea el cliente quien se base en ello...

3.- :roll: No hay "etiquetas comúnes", es (son) una especificación.
RSS 0.92
RSS 2.0
Atom

Saluton
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #12 (permalink)  
Antiguo 27/01/2007, 14:28
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Re: empezando con xml

muchas graciad por toda la ayuda, esto van funcionando poco a poco.

por cierto sin poner el header me funciona todo bien ¿?. a la hora de ponerlo, va antes del xml version...???

es q si lo pongo antes me da error, sino:

<?echo '<' ; ?>?xml version="1.0" encoding="ISO-8859-1"?>

<?Header ( "Content-type: text/xml" );?>

me funciona...

otra cosilla, la fecha q me pone es una hora más tarde q la q es...¿?¿? es muy raro...
  #13 (permalink)  
Antiguo 27/01/2007, 21:12
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Re: empezando con xml

Por partes... primero, cuando tengas errores sería idóneo indicaras exáctamente cuáles son y el código causante de error (comentado para encontrar las partes en conflicto, claro ).

Entiendo lo que experimentáste es que poniendo la función header() antes de <?xml fue lo que resultó en error, por el contrario poniendolo después corrió bien:
Código PHP:
<?php
/* ------- ERROR --------*/
header"Content-type: text/xml");   
echo 
'<'?>?xml version="1.0" encoding="ISO-8859-1"?>   


<?php
/* ------- SIN ERROR -----------*/
echo '<'?>?xml version="1.0" encoding="ISO-8859-1"?>
<?php // Nota: header() ES una función PHP
header"Content-type: text/xml");   
?>
... no tiene sentido. Las cabeceras HTTP deben ser enviadas antes de cualquier "contenido" del archivo; header() tiene que estar antes de cualquier salida al navegador, incluyendo espacios en blanco. Tu primer código esta bien (siempre y cuando no haya ningúna línea antes de lo que muestras) lo que propónes de utilizar header() después del echo es lo que es erróneo.
www.php.net/header


Lo de que te funcione sin header()... ¿en dónde?, ¿haciendo qué?.

Hay varios factores a considerar:
- El script que envia esta información mediante funciones propias del lenguaje.
- El servidor tiene una configuración para indicar un tipo por default a los archivos que entrega.
- El contenido del propio archivo; XML, siendo un lenguaje independiente, lo indica con la línea <?xml version="xxx" encoding="xxx" ?>, coherentemente tiene que ser la primera línea y es parte de una especificación.
- El cliente, quien recibe e interpreta la información; pudiendo ser un navegador o una aplicación... o lo que sea.

Recomendable utilizar header(), podría ahora servirte a tí (sigo preguntando dónde y cómo es eso) pero eso no garantiza sirva a los demás (supóngo será servido a varias persónas).

Saluton
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 21:05.