saludos, te comento que en una ocasión me pidieron generar XML en php con una base de datos en MySql el archivo que me ayuda a generar los XML es este:
Código PHP :
<?php
header("Content-type: text/xml");
$host = "localhost";
$user = "usuario";
$pass = "contraseña";
$database = "prueba";
$enlace = mysql_connect($host, $user, $pass) or die("Error MySQL.");
mysql_select_db($database, $enlace) or die("Error base de datos.");
$query = "SELECT * FROM tablaEjemplo ORDER BY id ASC";
$resultado = mysql_query($query, $enlace) or die("Sin resultados.");
$salida_xml = "<?xml version=\"1.0\"?>\n";
$salida_xml .= "<informacion>\n";
for($x = 0 ; $x < mysql_num_rows($resultado) ; $x++){
$fila = mysql_fetch_assoc($resultado);
$salida_xml .= "\t<persona>\n";
$salida_xml .= "\t\t<nombre>" . $fila['nombre'] . "</nombre>\n";
$salida_xml .= "\t\t<email>" . $fila['email'] . "</email>\n";
// Corregiendo caracteres incorrectos
$fila['texto'] = str_replace("&", "&", $fila['texto']);
$fila['texto'] = str_replace("<", "<", $fila['texto']);
$fila['texto'] = str_replace(">", ">", $fila['texto']);
$salida_xml .= "\t\t<texto>" . $fila['texto'] . "</texto>\n";
$salida_xml .= "\t</persona>\n";
}
$salida_xml .= "</informacion>";
echo $salida_xml;
?>
el código anterior te lo muestra en pantalla y si agregas este código te creara un archivo XML por cada fila de la base de datos
Código PHP :
$fh = fopen("nombre_xml". ".xml","w");
fwrite($fh,$salida_xml);
fclose($fh);
$cues = $cues + 1;
espero que te sirva de algo!!