查找非封闭的XML节点(Yahoo天气)

时间:2012-02-06 19:01:29

标签: javascript xml ajax yahoo weather

我正在尝试使用Javascript从Yahoo Weather中提取数据(例如http://weather.yahooapis.com/forecastrss?w=9807&u=c)。

我查看了其他主题,包括Trying to pull in elements from Yahoo Weather XMLTrying to retrieve yahoo weather using jquery / php / xml以及Parsing XML namespaces?

我已经在我的服务器上设置了一个代理,因此Ajax可以抓取该文件,并且它打开正常(例如我可以编写documentElement)。但是,我在抓取诸如

之类的标签时遇到了问题
<yweather:condition text="Mostly Cloudy" code="28" temp="5" date="Mon, 06 Feb 2012 10:00 am PST"/>

我认为这是因为它不是像

这样的贴身标签
<ttl>60</ttl>

任何人都可以帮我吗?使用Javascript 感谢

var parser = new DOMParser();
xmlDoc = parser.parseFromString(xmlDoc, "text/xml");

alert(xmlDoc.getElementsByTagName("ttl")[0].childNodes[0].nodeValue); //works
alert(xmlDoc.getElementsByTagName("yweather:location")[0].childNodes[0].getAttribute("city")); //doesn't

1 个答案:

答案 0 :(得分:0)

再次阅读'解析XML命名空间'的答案。

您要查找的元素具有命名空间,因此您需要使用getElementsByTagNameNS