Foros del Web » Programando para Internet » PHP »

Ordenar resultados XML

Estas en el tema de Ordenar resultados XML en el foro de PHP en Foros del Web. Hola amigos de foros del web. Tengo este XML: Código: <?xml version="1.0" encoding="utf-8"?> <rank> <player name="Pablo" edad="17"/> <player name="Juan" edad="40"/> <player name="Pedro" edad="19"/> <player name="Carlos" ...
  #1 (permalink)  
Antiguo 22/07/2009, 23:15
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 3
Hola amigos de foros del web.

Tengo este XML:

Código:
<?xml version="1.0" encoding="utf-8"?>
<rank>

<player name="Pablo" edad="17"/>
<player name="Juan" edad="40"/>
<player name="Pedro" edad="19"/>
<player name="Carlos" edad="15"/>
<player name="Esteban" edad="21"/>
<player name="Vicente" edad="45"/>

</rank>
La idea seria ordenar el resultado o el fichero (lo que les resulte mas facil de hacerme entender) de forma creciente o decreciente da lo mismo la cosa es que quede ordenado en funcion a la edad

cosa que quede asi:

Código:
<?xml version="1.0" encoding="utf-8"?>
<rank>

<player name="Carlos" edad="15"/>
<player name="Pablo" edad="17"/>
<player name="Pedro" edad="19"/>
<player name="Esteban" edad="21"/>
<player name="Juan" edad="40"/>
<player name="Vicente" edad="45"/>

</rank>
Espero que me puedan ayudar un poquito que estoy estancado aqui.

Ya lo resolvi tube que ocupar un metodo demasiado arcaico para hacerlo, se los dejo porque me dio risa como lo hize....

rank.xml

<?xml version="1.0" encoding="utf-8"?>
<rank>

<player name="Carlos" edad="15"/>
<player name="Pablo" edad="17"/>
<player name="Pedro" edad="19"/>
<player name="Esteban" edad="21"/>
<player name="Juan" edad="40"/>
<player name="Vicente" edad="45"/>

</rank>

"Procesador" de datos

<?php

$xml = simplexml_load_file("rank.xml");
$count = count($xml->player)-1;

for($i=0; $i<=$count; $i++)
{
$n[$i] = ''.$xml->player[$i][edad].'@@'.$xml->player[$i][name].'';
}

sort($n);
reset($n);

for($a=0; $a<=$count; $a++)
{
$name = str_replace("@@", "", strstr($n[$a], "@@"));
$level = str_replace("@@$name", "", $n[$a]);
echo "El jugador: <b>$name</b> tiene <b>$level</b> a&ntilde;os<br/>";
}

?>

Última edición por GatorV; 23/07/2009 a las 19:44
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 08:19.