Aunque llevo bastante tiempo visitando forosdelweb, no decidí registrarme hasta ahora.
Antes me habia limitado a buscar en los foros problemas que ya tuviesen solución, pero el problema que tengo ahora no lo he visto resuelto en ningun lado..
Consiste en leer un XML con PHP, y mostrar los resultados de forma ordenada, y mostrando solo los diez primeros, me explico:
Siguiendo un tutorial para leer un XML en PHP he conseguido leer varios campos.
Tengo un XML con X pilotos, el cual tiene entre otros valores valores como <Pos> <Name> <Points>...
Añado de muestra un par de pilotos y sus datos, para que podáis tenerlo como referéncia.
Código:
Consigo mostrar los resultados como véis aquí. Mediante el siguiente código:<Driver> <Pos>4</Pos> <Name>carles</Name> <Team>Vodafone McLaren Mercedes.</Team> <Points>32</Points> <Gap>7</Gap> <PP>00032</PP> <Starts>7</Starts> <PP_starts>00007</PP_starts> <Poles>0</Poles> <PP_poles>00000</PP_poles> <Wins>2</Wins> <PP_wins>00002</PP_wins> <Podiums>3</Podiums> <PP_podiums>00003</PP_podiums> </Driver> <Driver> <Pos>1</Pos> <Name>Perera</Name> <Team>Force India F1 Team</Team> <Points>39</Points> <Gap>0</Gap> <PP>00039</PP> <Starts>7</Starts> <PP_starts>00007</PP_starts> <Poles>0</Poles> <PP_poles>00000</PP_poles> <Wins>2</Wins> <PP_wins>00002</PP_wins> <Podiums>3</Podiums> <PP_podiums>00003</PP_podiums> </Driver>
Código:
<? $objDOM = new DOMDocument(); $objDOM->load("DriverChampionship.xml"); //make sure path is correct $driver = $objDOM->getElementsByTagName("Driver"); // for each note tag, parse the document and get values for // tasks and details tag. foreach( $driver as $value ) { $names = $value->getElementsByTagName("Name"); $name = $names->item(0)->nodeValue; $points = $value->getElementsByTagName("Points"); $point = $points->item(0)->nodeValue; echo "$name : $point <br>"; } ?>
Hasta ahora todo bien, ya que solo me interesa el nombre del piloto y los puntos, el problema es que solo quiero que me muestre los diez primeros pilotos, es decir aquellos cuyo valor <Pos> esta entre 0 y 10, y a poder ser ordenados.
Alguna idea?
Gracias de antemano!
Un Saludo!