Foros del Web » Programando para Internet » PHP »

recojer atributo XML con PHP

Estas en el tema de recojer atributo XML con PHP en el foro de PHP en Foros del Web. Hola, estoy tratando de solicitar los datos de los jugadores de un juego online para hacer un ranking. El sistema se llama Speed API, permite ...
  #1 (permalink)  
Antiguo 07/04/2013, 07:07
 
Fecha de Ingreso: febrero-2013
Mensajes: 163
Antigüedad: 11 años, 2 meses
Puntos: 1
API solicitar informacion de jugadores de un juego online

Hola, estoy tratando de solicitar los datos de los jugadores de un juego online para hacer un ranking. El sistema se llama Speed API, permite que programadores agarren esos datos para hacer este tipo de cosas. Me gustaría que miren esto: http://world.needforspeed.com/SpeedAPI/doc/ y hagan click en "Get Leaderboard (New)" para que sepan de lo que se trata.

Con este código, yo consigo los datos de un jugador y me imprime un archivo XML:

Código:
<?php  
    function XML_Abfrage_post($url, $postDaten) {  
        $Abfrage = curl_init();  
        curl_setopt($Abfrage, CURLOPT_URL, $url);  
        curl_setopt($Abfrage, CURLOPT_HEADER, true);  
        curl_setopt($Abfrage, CURLOPT_RETURNTRANSFER, true);  
        curl_setopt($Abfrage, CURLOPT_POST, true);  
        curl_setopt($Abfrage, CURLOPT_POSTFIELDS, $postDaten);  
        $ausgAbfrage = curl_exec($Abfrage);  
        curl_close($Abfrage);  
        $xmlAbfrage = strstr($ausgAbfrage, '<?xml');  
        $arrayAbfrage = simplexml_load_string($xmlAbfrage);  
        return $arrayAbfrage;  
    }   
    $postString = 'eid='.$_GET["eid"].'&et='.$_GET["et"].'&lt='.$_GET["lt"].'&dn='.$_GET["dn"];  
    echo $postString."<br/>";  
    $arrayLeaderboard = XML_Abfrage_post('world.needforspeed.com/SpeedAPI/ws/game/nfsw/leaderboards', $postString);  
    print_r($arrayLeaderboard);   	
    ?>
pueden ver un ejemplo de mi código aquí: http://www.nfswblog.com/registro.php...10n&shard=Apex
como podrán ver, me muestra algunas informaciones del jugador.

Pero yo necesito poder manipular esos datos para hacer un ranking personalizado, y no tengo idea de como hacerlo. Que me imprima un XML no me sirve, necesito manipular esos datos, alguien me da alguna pista? xD

les dejo como ejemplo una página que hace lo que yo quiero hacer: http://nfs-s.com/nfsw/PERFECT10N
  #2 (permalink)  
Antiguo 07/04/2013, 17:11
 
Fecha de Ingreso: febrero-2013
Mensajes: 163
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: API solicitar informacion de jugadores de un juego online

es posible desde php llamar a determinados atributos de un xml? soy muy nuevo en esto xD estoy empezando a investigar..
  #3 (permalink)  
Antiguo 07/04/2013, 17:44
 
Fecha de Ingreso: febrero-2013
Mensajes: 163
Antigüedad: 11 años, 2 meses
Puntos: 1
recojer atributo XML con PHP

tengo un archivo XML con el siguiente código:

Código:
(
    [worldLeaderboard] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [eventId] => 45
                    [eventType] => 2
                    [eventMode] => 1
                    [eventDurationMilliseconds] => 60653
                    [eventDuration] => 0:01:00.653
                    [createdDate] => 2013-01-08 00:32:47.0 GMT-00:00
                    [createdDateStr] => 2013/01/08
                    [personaName] => PERFECT10N
                    [make] => MCLAREN
                    [carName] => F1
                    [rank] => 1
                )

            [persona] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [personaName] => PERFECT10N
                            [level] => 60
                            [image] => 4
                            [statusMessage] => ULTIMATE RACING ALIENS [URA] Youtube:Superfluid777 NFS-S Adm
                            [defaultPersona] => true
                        )

                )

        )

)
como puedo hacer para agarrar por ejemplo el atributo [eventDuration] con un archivo php? para despues imprimirlo
  #4 (permalink)  
Antiguo 07/04/2013, 17:50
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: recojer atributo XML con PHP

worldLeaderboard['eventDuration'] o use el método attributes
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 07/04/2013, 20:42
 
Fecha de Ingreso: febrero-2013
Mensajes: 163
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: recojer atributo XML con PHP

en uno de los ejemplos está asi:

Código:
<?php
SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [id] => 55555
        )

    [text] => "hello world"
)
?>

<?php
function xml_attribute($object, $attribute)
{
    if(isset($object[$attribute]))
        return (string) $object[$attribute];
}
?>

<?php
print xml_attribute($xml, 'id'); //prints "55555"
?>
no me funciona, donde está el error? en la verdad entiendo demasiado poco.. como es eso del string? entiendo mas o menos lo que pasa en el código. nunca manejé xml antes, y en php soy muy nuevo, solo se hacer otras cosas
  #6 (permalink)  
Antiguo 07/04/2013, 20:47
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: recojer atributo XML con PHP

Cuál error y cuál es tu xml? "eso del string" se encuentra en el manual PHP:

Manipulación de tipos
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #7 (permalink)  
Antiguo 07/04/2013, 21:01
 
Fecha de Ingreso: febrero-2013
Mensajes: 163
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: recojer atributo XML con PHP

hm en la verdad ya me estoy metiendo en algo un poco complicado para mi nivel... solo sé lo básico o menos de lo básico xD empezé a estudiar hace poco.
me sale este error:
Parse error: syntax error, unexpected T_STRING in /home/lmztkkum/public_html/registro2.php on line 2
leyendo ese manual, lo que pude entender creo es que al XML le falta una variable... creo que lo mejor es ir aprendiendo de a poco php XD me estoy metiendo en algo que no entiendo todavía.. estoy haciendo mal

Última edición por mathiasmontiel; 07/04/2013 a las 21:14
  #8 (permalink)  
Antiguo 07/04/2013, 21:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: API solicitar informacion de jugadores de un juego online

Claro, puedes usar SimpleXML para manipular el XML y mostrarlo como gustes.
  #9 (permalink)  
Antiguo 07/04/2013, 21:36
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: recojer atributo XML con PHP

Pues ese error es de sintaxis, coloca códigos errores archivos XML y con gusto se te puede ayudar.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: api, informacion, juego, recojer, registro, xml
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.
Respuesta




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