Comunidad de diseño web y desarrollo en internet online

Acceder a XML de Scoreoid

Citar            
MensajeEscrito el 05 Oct 2012 09:54 am
Buenas a todos,

quería preguntar una cosilla básica pero que me está mareando cosa fina... he empezado a utilizar Scoreoid para las tablas de records de mis juegos y la verdad es que todo va como la seda, es muy recomendable.

El problema que tengo, y posiblemente alguien quiera matarme, es que al recibir el xml con los records, recibo esto:

Código XML :

<?xml version="1.0" encoding="UTF-8" ?>
<scores>
   <player username="Jugador 1" email="" first_name="" last_name="" platform="Flash">
      <score score="20" created="2012-10-04 20:53:31" difficulty="4" platform="Flash" ></score>
   </player>

   <player username="Jugador 2" email="" first_name="" last_name="" platform="Flash">
      <score score="19" created="2012-10-04 20:53:53" difficulty="4" platform="Flash" ></score>
   </player>
</scores>


Y no consigo acceder a los nombres, records... Los datos cargan, si hago un trace en el listener del COMPLETE, los datos los estoy recibiendo, pero no se como acceder a ellos, he probado:

Código ActionScript :

xmlRecords.player //no devuelve nada
xmlRecords.player[0] //no devuelve nada
xmlRecords.player.@username //no devuelve nada
xmlRecords.player[0].@username //no devuelve nada


¿Alguien podría decirme simplemente como acceder a ese username y al score? Es que no se si estoy pasando algo por alto o que...

Gracias de antemano.

Por torpedete

85 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 05 Oct 2012 11:23 am
BuenAS:

Imagino que no cargas bien el xml, o que no es un xml (puede que lo que tengas realmente sea un String, puedes utilizar la clase XML para convertirlo a XML), ya que a mí traza lo siguente:

Código :

trace(xmlRecords.player);
<player username="Jugador 1" email="" first_name="" last_name="" platform="Flash">
  <score score="20" created="2012-10-04 20:53:31" difficulty="4" platform="Flash"/>
</player>
<player username="Jugador 2" email="" first_name="" last_name="" platform="Flash">
  <score score="19" created="2012-10-04 20:53:53" difficulty="4" platform="Flash"/>
</player>

trace(xmlRecords.player[0]);
<player username="Jugador 1" email="" first_name="" last_name="" platform="Flash">
  <score score="20" created="2012-10-04 20:53:31" difficulty="4" platform="Flash"/>
</player>

trace(xmlRecords.player.@username);
Jugador 1Jugador 2

trace(xmlRecords.player[0].@username);
Jugador 1


Un saludo

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 05 Oct 2012 11:35 am
Gracias por la respuesta,

"creo" que si que tengo un XML, ya que en el listener hago un casting de lo recibido:

Código ActionScript :

private function recordsCargados(e:Event):void 
{
   var xmlRecords:XML = new XML(e.target.data);
   

        //RESTO DEL CODIGO

}

Por torpedete

85 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 05 Oct 2012 11:52 am
BuenAS:

¿Y si haces un trace, como los que ponías antes, no obtienes nada?

Yo haciendo con el xml que has puesto, por ejemplo:

Código ActionScript :


trace(xmlRecords.player[0].@username);



obtengo "Jugador 1"

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 05 Oct 2012 11:57 am
Si hago un trace de xmlRecords, obtengo esto (con lo cual se que está recibiendo bien):

Código XML :

%3C%3Fxml%20version=%221%2E0%22%20encoding%3D%22UTF%2D8%22%20%3F%3E%3Cscores%3E%3Cplayer%20username%3D%22Jugador%201%22%20email%3D%22%22%20first%5Fname%3D%22%22%20last%5Fname%3D%22%22%20platform%3D%22Flash%22%3E%3Cscore%20score%3D%2220%22%20created%3D%222012%2D10%2D04%2020%3A53%3A31%22%20difficulty%3D%224%22%20platform%3D%22Flash%22%20%2F%3E%3C%2Fplayer%3E%3Cplayer%20username%3D%22Jugador%202%22%20email%3D%22%22%20first%5Fname%3D%22%22%20last%5Fname%3D%22%22%20platform%3D%22Flash%22%3E%3Cscore%20score%3D%2219%22%20created%3D%222012%2D10%2D04%2020%3A53%3A53%22%20difficulty%3D%224%22%20platform%3D%22Flash%22%20%2F%3E%3C%2Fplayer%3E%3C%2Fscores%3E


Sí hago el trace que tú dices, obtengo esto:

Código ActionScript :

TypeError: Error #1010: A term is undefined and has no properties.



No entiendo que es lo que está fallando, recibo los datos pero parece que no en el formato adecuado... no se si tiene sentido lo que digo :?

Por torpedete

85 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 05 Oct 2012 12:05 pm
Esto me ha hecho darme cuenta de una cosa, tenía el dataFormat incorrecto

Código ActionScript :

cargadorDatos.dataFormat = URLLoaderDataFormat.VARIABLES;


Ha sido quitarlo y listo calisto, todo funcionando perfectamente.

Muchas gracias por tu ayuda :D

Por torpedete

85 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 05 Oct 2012 12:06 pm
BuenAS:

Parece que lo que te llega no es UTF-8. Prueba a utilizar los métodos escape() / unescape(); /decodeURI()

Creo recordar que es decodeURI() el método que pasa de codificación url a UTF-8, pero no estoy seguro. Prueba a ver cual te devuelve una cadena 'interpretable' por la clase XML.

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 05 Oct 2012 12:09 pm
Me imagino que no has visto mi último mensaje :)

Por torpedete

85 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 05 Oct 2012 02:04 pm
...parece que estabamos escribiendo casi al mismo tiempo :)

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 05 Oct 2012 02:10 pm
¡JAJAJAJA!

Lo dicho, mil gracias por la ayuda, entre una cosa y la otra lo he sacado y la cosa sigue avanzando :)

Por torpedete

85 de clabLevel



Genero:Masculino  

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.