Finalmente he encontrado la solución, la publico por si a alguien le sirve:
Código PHP:
<?php
header("Content-type: text/xml"); //Indicamos que el contenido es XML
//Establecemos los datos necesarios para la conexión a la bdd
$host = "ip_servidor";
$user = "usuario";
$pass = "contraseña";
$database = "nombre_bdd";
//Conectamos a la bdd
$enlace = mysql_connect($host, $user, $pass) or die("Error MySQL.");
mysql_select_db($database, $enlace) or die("Error base de datos.");
//Lanzamos la consulta
$query = "select * from noticias";
$resultado = mysql_query($query, $enlace) or die("Sin resultados.");
//En la variable "$salida_xml" guardaremos todo el texto que generemos con este código y lo mostraremos al final de todo
$salida_xml = "\n";
$salida_xml .= "\n";
//Mostramos el encabezado
echo "<?xml version='1.0' encoding='UTF-8'?>";
echo "<?xml-stylesheet type='text/xsl' href='index.xsl'?>";
//Mostramos el tag padre
echo "<noticias>\n";
//Con este bucle sacaremos TODAS las noticias, envolviendo el contenido de cada uno de los campos con sus <tags> correspondientes y formateandolo con \t (tabular) y \n (salto de linea)
for($x = 0 ; $x < mysql_num_rows($resultado) ; $x++)
{
$fila = mysql_fetch_assoc($resultado);
$salida_xml .= "\t<noticia>\n";
$salida_xml .= "\t\t<id>" . $fila['idNot'] . "</id>\n";
$salida_xml .= "\t\t<titulo>" . $fila['tituloNot'] . "</titulo>\n";
// Corrigiendo caracteres incorrectos
$fila['textNot'] = str_replace("&", "&", $fila['textNot']);
$fila['textNot'] = str_replace("<", "<", $fila['textNot']);
$fila['textNot'] = str_replace(">", ">", $fila['textNot']);
$salida_xml .= "\t\t<texto>" . $fila['textoNot'] . "</texto>\n";
$salida_xml .= "\t</noticia>\n";
}
//Mostramos todo el texto generado
echo $salida_xml;
//Cerramos el tag padre
echo "</noticias>";
?>
Espero que le sirva a alguien!!!
fuente: http://www.bujorel.net/tutorial/como-pasar-datos-de-mysql-a-xml-con-php/