PHP - php y xml: ordenar datos

 
Vista:

php y xml: ordenar datos

Publicado por parandroide (2 intervenciones) el 08/05/2007 01:29:51
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 script php que lee los registros 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>";
echo "<div class='entrada'>$cuantos</div>";
echo "</div>";
echo "<div class='entrada'>hay '$cuantos'</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 eruditos de la programación web jeje. Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:php y xml: ordenar datos

Publicado por ambrosio (10 intervenciones) el 08/05/2007 10:54:33
Nunca he usado el "simplexml", pero por lo que veo puede que te sirva lo siguiente:

...
if ($mensaje) {
$mensaje = array_reverse ($mensaje); //esto es lo nuevo
foreach ($mensaje as $entrada) {
...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar