Foros del Web » Programando para Internet » Javascript »

Recorrer XML

Estas en el tema de Recorrer XML en el foro de Javascript en Foros del Web. Hola, estoy intentado recorrer, con javascript, un XML y por más vueltas que le doy no lo consigo, no lo entiendo y ya tengo la ...
  #1 (permalink)  
Antiguo 13/06/2011, 11:47
 
Fecha de Ingreso: junio-2011
Mensajes: 5
Antigüedad: 12 años, 10 meses
Puntos: 0
Recorrer XML

Hola,

estoy intentado recorrer, con javascript, un XML y por más vueltas que le doy no lo consigo, no lo entiendo y ya tengo la sensación de estar dando palos de ciego.
En concreto quiero extraer el valor de <jradeg> por ejemplo de:

http://cdsweb.u-strasbg.fr/cgi-bin/nph-sesame/-ox/NSV?vega

Podeis alguno echarme una mano?

Muchas gracias.
  #2 (permalink)  
Antiguo 13/06/2011, 11:55
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Recorrer XML

buenas,
lo primero es cargar el documento con javascript. puedes hacerlo con XHR (aka AJAX) u otra forma que no recuerdo bien si era loadXML o mediante el metodo create de implementation. de todos modos, esta ultima forma no son compatible entre navegadores, lo mejor seria usar XHR. una vez lo cargues, invocas el metodo getElementsByTagName pasandole como argumento el nombre del elemento que deseas capturar. esta funcion te devuelve una coleccion de todos los elementos con dicho nombre el cual lo manejas como si fuera un array. en tu caso, es el unico elemento que existe, entonces la posicion cero es la que hace referencia al elemento. finalmente, lees la propiedad textContent a traves de esa referencia para obtener el contenido.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 13/06/2011, 12:02
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: Recorrer XML

Por ahi te es mas sencillo convertirlo a json:

http://davidwalsh.name/convert-xml-json
__________________
blog | @aijoona
  #4 (permalink)  
Antiguo 13/06/2011, 12:10
 
Fecha de Ingreso: junio-2011
Mensajes: 5
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Recorrer XML

Lo primero gracias por las rápidas respuestas, para ser un poco más concreto os enseño con lo que estoy probando ahora, que no se porqué falla:

function buscarCoords(nombre){
url = 'http://cdsweb.u-strasbg.fr/cgi-bin/nph-sesame/-ox/NSV?vega';
conexCoords=crearXMLHttpRequest();
conexCoords.onreadystatechange = buscarCoordsFun;
conexCoords.open("GET", url, true);
conexCoords.send(null);
}

function buscarCoordsFun()
{
if(conexCoords.readyState == 4)
{
var xml = conexCoords.responseXML;
var xml2 = xml.getElementsByTagName('Sesame')[0];
var item = xml2.getElementsByTagName('Target')[0];
var item2 = item.getElementsByTagName('Resolver')[0];
var txt = item2.getElementsByTagName('jradeg')[0];
alert(txt.firstChild.data)
}
}

Pero falla ya en la linea:
var xml2 = xml.getEle....

Veis el problema?
  #5 (permalink)  
Antiguo 13/06/2011, 12:25
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: Recorrer XML

No me falla en mis tests. Estás seguro de que el xml está en el mismo dominio en que se encuentra el archivo que pretende "leerlo"?
  #6 (permalink)  
Antiguo 13/06/2011, 12:26
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Recorrer XML

sospecho que debe ser problema de variables. en la funcion buscarCoordsFun, cambia conexCoords por this.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 13/06/2011, 12:28
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Recorrer XML

Hasta donde tengo entendido, no se puede leer un archivo usando javascript desde otro dominio. Si estás tratando de leer otro dominio, debes usar un lenguaje de servidor, como por ejemplo PHP y usar por ejemplo cURL o file_get_contents.

Si se puede usar javascript para leer desde otro servidor, me gustaria saber, pero hasta donde tengo entendido no se puede.

¿Eso es lo que quieres hacer, leer archivo xml desde otro servidor?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 13/06/2011, 12:32
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Recorrer XML

Cita:
Iniciado por abimaelrc Ver Mensaje
Si se puede usar javascript para leer desde otro servidor, me gustaria saber, pero hasta donde tengo entendido no se puede.
se puede, pero evidentemente el servidor externo debe estar configurado para asi permitirlo. en particular, se hace declarando un header, no recuerdo exactamente cual era, quizas @panino conozca cual es.

@edit: creo que era access control allow origin.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 13/06/2011, 12:37
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: Recorrer XML

@zerokilled: no (me refiero a que sea problema de variables), porque al invocar a la función buscarCoords ya convierte a global a conexCoords (no es lo más elegante, pero...)

@abimaelrc: se puede, pero hay que darle permisos desde el dominio a acceder y es complicado:
https://developer.mozilla.org/En/HTTP_Access_Control

Edito:, ja, ja, me ganoó zerokilled ;)
  #10 (permalink)  
Antiguo 13/06/2011, 12:41
 
Fecha de Ingreso: junio-2011
Mensajes: 5
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Recorrer XML

Estais en lo cierto, no está en mi dominio, pero es un servicio que dan en ese dominio entonces supongo que habrá alguna forma de tratarlo, no?

No puedo entonces acceder así?
  #11 (permalink)  
Antiguo 13/06/2011, 12:42
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Recorrer XML

Ok, pero como han indicado, se puede si por ejemplo tengo un servidor que somete los datos a XML y le indico en ese servidor lo que me indicaron. A pues no se puede

Gracias por el dato

@ejuafer, como te indiqué, con un lenguaje de parte del servidor si puedes, con PHP se puede lograr con file_get_contents o con cURL. En el área de aporte del foro de PHP hay un tema de un "ilustre" que te puede ayudar
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #12 (permalink)  
Antiguo 13/06/2011, 12:47
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: Recorrer XML

Cita:
Iniciado por ejuafer Ver Mensaje
Estais en lo cierto, no está en mi dominio, pero es un servicio que dan en ese dominio entonces supongo que habrá alguna forma de tratarlo, no?

No puedo entonces acceder así?
Lo más simple en ese caso es usar un proxy, como te indicó abimaelrc: http://blog.unijimpe.net/proxy-en-php/
  #13 (permalink)  
Antiguo 13/06/2011, 14:16
 
Fecha de Ingreso: junio-2011
Mensajes: 5
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Recorrer XML

Con el proxy php funciona genial.

Gracias a todos por la rapidez de respuesta y la ayuda que me habeis dado.

Si no es abusar, ya por completar el trabajo y aunque se que no pertenece a este foro, sabriais alguno decirme como se le puede poner al script del proxy-php ...

<?php
$vfile = $_GET['pagina'];
header("Content-type: text/xml");
readfile($vfile);
?>

para que a su vez salga por un proxy web?

Saludos,

Enrique.
  #14 (permalink)  
Antiguo 13/06/2011, 14:39
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Recorrer XML

¿Por qué deseas que salga? Si lo único que necesitas es leer los datos
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #15 (permalink)  
Antiguo 13/06/2011, 14:41
 
Fecha de Ingreso: junio-2011
Mensajes: 5
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Recorrer XML

Cita:
Iniciado por abimaelrc Ver Mensaje
¿Por qué deseas que salga? Si lo único que necesitas es leer los datos
Porque el script corre en un ordenador que no puede salir directamente a internet, tiene que hacerlo a través de un proxy.
  #16 (permalink)  
Antiguo 13/06/2011, 15:05
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Recorrer XML

¿Eso quiere decir que tienes algún servidor que lo hace? Si es así, entonces con cURL puedes lograrlo, ejemplo de uso http://www.forosdelweb.com/f18/curl-...8/#post3784335
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: 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 11:23.