具有命名空间的元素的属性值

时间:2013-06-12 15:08:26

标签: php xml rss yahoo-weather-api

我正在为我的学校网站制作当前天气和天气预报的天气预报。 为此,我将使用Yahoos RSS天气预报。 在此XML文件中,有一些值存储在属性中。 我想用PHP来解决这些问题。 该文件可在此处找到: http://weather.yahooapis.com/forecastrss?w=12602818&u=c

XML文件说明了以下行:

<rss xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0">

我想要获得的价值如下:

<yweather:condition text="Partly Cloudy" code="30" temp="22" date="Wed, 12 Jun 2013 4:20 pm CEST"/>
例如,我会喜欢从这个yweather:条件接收'temp'。 任何人都可以告诉我如何用PHP完成这项工作吗?

1 个答案:

答案 0 :(得分:1)

<?php
$doc = new DOMDocument();
$doc->load('http://weather.yahooapis.com/forecastrss?w=12602818&u=c');
$channel = $doc->getElementsByTagName("channel");
foreach($channel as $chnl){
    $item = $chnl->getElementsByTagName("item");
    foreach($item as $itemgotten){
        $curtemp = $itemgotten->getElementsByTagNameNS("http://xml.weather.yahoo.com/ns/rss/1.0","condition")->item(0)->getAttribute("temp");
        echo $curtemp;
    }
}
?>

这解决了这个问题! 答案在这里找到: How to get the tag "<yweather:condition>" from Yahoo Weather RSS in PHP?