Yo tampoco soy un experto acerca de PHP y tampoco sobre XML. Aun así te adjunto el código fuente que uso yo para generar archivos RSS (un tipo de XML). Seguro que hay formas mejores de hacerlo (estoy en ello
) pero seguro que sirve para que te hagas una idea.
Código PHP:
<?php
# Aplicación para la generación de los archivos RSS de Burdjia.com.
#########################
# Archivo en castellano #
#########################
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
echo "<rss version=\"2.0\">\n";
echo " <channel>\n";
echo " <title>Burdjia.com</title>\n";
echo " <link>http://www.burdjia.com/</link>\n";
echo " <description>Burdjia es un estudio de diseño de videojuegos con unas ideas poco comunes respecto a cómo deberían ser los juegos de ordenador. También desarrolla librerías y realiza trabajos para otras empresas.</description>\n";
# NOTICIAS.
# Obtener sólo noticias en castellano.
$LENGUAJE = "CAST";
# Crea la consulta, según se haya pedido.
include ("obten_noticias.php");
# Conectamos con la base de datos.
$Conexion = mysql_connect ("atawalpayupanki", "atawalpayupanki", "atawalpayupanki");
if (!$Conexion) die ("No pudo conectarse a la base de datos");
$BD = mysql_select_db ("atawalpayupanki", $Conexion); # Selecciona la base de datos.
# Hacemos la consulta.
$Result = mysql_query ($sql, $Conexion);
if ($Result) {
while ($entrada = mysql_fetch_object ($Result)) {
# Obtenemos la fecha.
$Hoy = getdate ($entrada->SEGUNDOS);
# Construimos el item.
echo "\n <item>\n";
echo " <title>".$entrada->TCAST."</title>\n";
echo " <guid>http://www.burdjia.com/#".$Hoy[mday]."_".$Hoy[mon]."_".$Hoy[year]."</guid>\n";
echo " <pubDate>".date ('r', $entrada->SEGUNDOS)."</pubDate>\n";
echo " <link>http://www.burdjia.com/#".$Hoy[mday]."_".$Hoy[mon]."_".$Hoy[year]."</link>\n";
echo " <description><![CDATA[".$entrada->CAST."]]></description>\n";
echo " </item>\n";
}
}
# IMAGEN DEL DÍA
# Obtiene la lista de imagenes.
$Result = mysql_query ('SELECT * FROM `IDD` ORDER BY `ARCH` DESC LIMIT 0, 3', $Conexion);
if ($Result) {
while ($entrada = mysql_fetch_object ($Result)) {
# Obtenemos la fecha.
$Fecha = $entrada->DIA." de ";
switch ($entrada->MES) {
case 1: $Fecha .= "Enero"; break;
case 2: $Fecha .= "Febrero"; break;
case 3: $Fecha .= "Marzo"; break;
case 4: $Fecha .= "Abril"; break;
case 5: $Fecha .= "Mayo"; break;
case 6: $Fecha .= "Junio"; break;
case 7: $Fecha .= "Julio"; break;
case 8: $Fecha .= "Agosto"; break;
case 9: $Fecha .= "Septiembre"; break;
case 10: $Fecha .= "Octubre"; break;
case 11: $Fecha .= "Noviembre"; break;
case 12: $Fecha .= "Diciembre"; break;
}
$Fecha .= ' de 20';
if ($entrada->ANNO < 10) $Fecha .= '0';
$Fecha .= $entrada->ANNO;
# Calcula la fecha de publicación.
$Segundos = mktime (12, 0, 0, $entrada->MES, $entrada->DIA, $entrada->ANNO);
# Construimos el item.
echo "\n <item>\n";
echo " <title>Imagen del día (".$Fecha.")</title>\n";
echo " <guid>http://www.burdjia.com/IDD/index.php?ID=".$entrada->ARCH."</guid>\n";
echo " <pubDate>".date ('r', $Segundos)."</pubDate>\n";
echo " <link>http://www.burdjia.com/IDD/index.php?ID=".$entrada->ARCH."</link>\n";
echo " <description><![CDATA[".$entrada->DESCRIPCION."]]></description>\n";
echo " </item>\n";
}
}
echo " </channel>\n";
echo "</rss>";
?>
[edit]Olvidé poner el enlace al archivo "resultado".
Aquí está.