Hola. Estoy haciendo un guestbook que guarda los registros en un archivo xml, mismo que es manipulado (leído y escrito) por un script php usando las funciónes simplexml. Cuando es leido, devuelve el contenido en html para ser desplegado tal cual en la página a través de una petición XMLHttpRequest. Todo funciona bien, guarda, devuelve y despliega los mensajes perfectamente. El xml es como el siguiente:
<mensajes>
<mensaje>
<nombre>nick/nombre--1</nombre>
<contacto>web/mail--1</contacto>
<cuerpo>mensaje--1</cuerpo>
</mensaje>
<mensaje>
<nombre>nick/nombre--2</nombre>
<contacto>web/mail--2</contacto>
<cuerpo>mensaje--2</cuerpo>
</mensaje>
<mensaje>
<nombre>nick/nombre--3</nombre>
<contacto>web/mail--3</contacto>
<cuerpo>mensaje--3</cuerpo>
</mensaje>
</mensajes>
y el php quelee los mensajes es este:
<?php
header("Content-Type: text/html; charset=iso-8859-1");
$mensajes = simplexml_load_file('mensajes.xml');
$mensaje = $mensajes->mensaje;
if ($mensaje) {
foreach ($mensaje as $entrada) {
if ($entrada->contacto != ''){
echo "<div id='mensaje'><div class='datos'><a href='$entrada->contacto'>$entrada->nombre</a> dijo</div>";
echo "<div class='entrada'>$entrada->cuerpo</div>";
echo "</div>";
} else {
echo "<div id='mensaje'><div class='datos'>$entrada->nombre dijo</div>";
echo "<div class='entrada'>$entrada->cuerpo</div></div>";
}
}
}
?>
No soy muy avanzado en php ni en xml, y mi problema (ojalá me puedan ayudar) es que no sé cómo hacer que los mensajes nuevos aparezcan primero, ya que en el xml los nuevos registros van quedando hasta abajo, antes de </mensajes>, o que php al momento de leerlos que los muestre en el orden contrario en el que se encuentran, esto es, primero los nuevos (los de abajo). No sé, tal vez es algo muy simple y yo me estoy rompiendo la cabeza de más, pero bueno, para saberlo vine aquí, a que por favor me ayuden uds. grandes gurús de la programación web jeje. Saludos.