Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Leer XML desde ajax retornando valores de forma global

Estas en el tema de Leer XML desde ajax retornando valores de forma global en el foro de Frameworks JS en Foros del Web. Saludos Teniendo un XML como: Código: <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <arch_xml> <msn id="0" value="Login Success. You will redirect!"/> <msn id="1" value="The login is invalid."/> </arch_xml> ...
  #1 (permalink)  
Antiguo 28/10/2013, 03:48
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 3 meses
Puntos: 1
Pregunta Leer XML desde ajax retornando valores de forma global

Saludos

Teniendo un XML como:

Código:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<arch_xml>
    <msn id="0" value="Login Success. You will redirect!"/>
    <msn id="1" value="The login is invalid."/>
</arch_xml>
Estoy tratando de llerlo e imprimir 1 de sus valores así:

Código:
    var tmp=[];

    function settmp(id,name){
        tmp[id] = name;
    }    
    
    function read_xml_lang() {        
        $.get("lang/en.xml", function (xml) {
            $(xml).find('msn').each(function(){
                var id = $(this).attr('id');
                var name = $(this).attr('value');
                settmp(id,name);
            });
        });        
    }
    
    read_xml_lang();
    
    alert(tmp[0]);
El alert siempre me retorna: undefined

Gracias
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #2 (permalink)  
Antiguo 28/10/2013, 07:00
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Leer XML desde ajax retornando valores de forma global

Deberías poner diferente nombre a las variables id y name:

Cita:
settmp(id,name);
Porque también coinciden con la constructora....

Cita:
function settmp(id,name){
tmp[id] = name;
}
  #3 (permalink)  
Antiguo 28/10/2013, 09:00
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Leer XML desde ajax retornando valores de forma global

Hola Tocayo:

Lamentablemente no uso librerías, así que tal vez no te sirva lo que te diga, pero hay diferencia entre 0 y "0", porque parece que tatas a un objeto como un array...

Con Ajax normalito y la respuesta responseXML basta con usar el DOM...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 28/10/2013, 23:46
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 3 meses
Puntos: 1
Respuesta: Leer XML desde ajax retornando valores de forma global

Gracias PHPeros, pero cambiarle el nombre a las variables no solvento nada.

Saludos Tocayo, pero no veo en que parte estoy usando los objetos como arreglos

Igual hice lo siguiente:

Código:
var tmp=new Array();     
 function settmp(id,name){         
tmp[id] = name;
        alert(tmp[0]);
    }             

 function read_xml_lang() {                
 $.get("lang/en.xml", function (xml) { 
            $(xml).find('msn').each(function(){
                 var idn = $(this).attr('id'); 
                var namen = $(this).attr('value'); 
                settmp(idn,namen); 
            }); 
        });   
          }

          read_xml_lang();      

    alert(tmp[0]);
El alert dentro de settmp lo muestra sin problemas. Pero el último, solo dice Undefined

Me parece que el problema está en que settmp se llama dentro del GET y es como si nada dentro del GET quedara disponible fuera de él mismo.
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.

Etiquetas: ajax, javascript
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:12.