2009-07-05 4 views
7

Использование JavaScript/Ajax?Анализ пространств имен XML?

Я пытаюсь извлечь значения из:

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

Ищете что-то вроде:

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

Но ничего не работает до сих пор. : '( Благодаря

ответ

8

Существует специальная версия getElementsByTagName пространств имен:.. getElementsByTagNameNS

Например:.

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

... где [Namespace URI] является URI из yweather имен

Steve

+2

Не поддерживается IE, но подходит неверно – annakata

+0

@annakata: Из интереса, как вы можете это сделать в IE? –

+0

Я думаю, вы можете просто использовать getElementsByTagName («yweather: astronomy») с IE. Кроме того, API фидов Google имеет реализацию перекрестного браузера. Возможно, вы можете использовать это или что-то вроде этого: http://code.google.com/apis/ajaxfeeds/documentation/reference.html#getElementsByTagNameNS – dylanfm

Смежные вопросы