2009-07-05 14 views
7

Utiliser JavaScript/Ajax?Analyse des espaces de noms XML?

Je suis en train d'extraire des valeurs de:

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

Vous cherchez quelque chose comme:

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

Mais rien ne fonctionne à ce jour. : '(Merci

Répondre

8

Il existe une version spéciale de getElementsByTagName pour les espaces de noms:.. getElementsByTagNameNS

Par exemple:.

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

... où [Namespace URI] est l'URI de l'espace de noms yweather

Steve

+2

Non pris en charge par IE, mais correct – annakata

+0

@annakata: Par intérêt, comment pouvez-vous le faire dans IE? –

+0

Je pense que vous pouvez simplement utiliser getElementsByTagName ("yweather: astronomy") avec IE. En outre, l'API de flux Google a une implémentation multi-navigateur. Peut-être que vous pouvez l'utiliser, ou quelque chose comme ça: http://code.google.com/apis/ajaxfeeds/documentation/reference.html#getElementsByTagNameNS – dylanfm

Questions connexes