2009-07-05 25 views
7

Korzystanie z JavaScript/Ajax?Parsowanie przestrzeni nazw XML?

Próbuję wyodrębnić wartości z:

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

Szukasz czegoś podobnego:

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

Ale nic nie działa tak daleko. : '( Dzięki

Odpowiedz

8

Jest to specjalna wersja getElementsByTagName dla nazw:.. getElementsByTagNameNS

. Na przykład:

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

... gdzie [Namespace URI] jest URI przestrzeni nazw yweather

Steve

+2

Nie obsługiwany przez IE, ale popraw inny – annakata

+0

@annakata: Ciekawe, jak możesz to zrobić w IE? –

+0

Myślę, że możesz po prostu użyć getElementsByTagName ("yweather: astronomy") z IE. Ponadto interfejs API kanałów Google ma implementację krzyżową. Może możesz tego użyć lub coś podobnego: http://code.google.com/apis/ajaxfeeds/documentation/reference.html#getElementsByTagNameNS – dylanfm

Powiązane problemy