2009-07-05 26 views
7

¿Usando JavaScript/Ajax?¿Analizar espacios de nombres XML?

estoy tratando de extraer los valores de:

<yweather:astronomy sunrise="6:34 am" sunset="8:38 pm"/> 

buscando algo como:

var response = transport.responseXML.getElementsByTagName("channel"); 
sunrise = response[0].getElementsByTagName("yweather:astronomy").item(0).Attributes["sunrise"].Value; 

Pero nada funciona hasta ahora. : '( Gracias

Respuesta

8

Hay una versión especial de getElementsByTagName de espacios de nombres:.. getElementsByTagNameNS

Por ejemplo:.

var response = transport.responseXML.getElementsByTagName("channel"); 
var sunrise = response[0].getElementsByTagNameNS("[Namespace URI]", "astronomy")[0].getAttribute("sunrise"); 

... donde [Namespace URI] es el URI del espacio de nombres yweather

Steve

+2

No es compatible con IE, pero corrige lo contrario – annakata

+0

@annakata: Fuera de interés, ¿cómo puedes hacerlo en IE? –

+0

Creo que puedes usar getElementsByTagName ("yweather: astronomy") con IE. Además, Google feeds API tiene una implementación de navegador cruzado. Tal vez pueda usar eso, o algo similar: http://code.google.com/apis/ajaxfeeds/documentation/reference.html#getElementsByTagNameNS – dylanfm

Cuestiones relacionadas