Trying to pull in elements from Yahoo Weather XML

守給你的承諾、 提交于 2019-12-06 16:15:16

问题


Trying to pull a value from the sunrise element from [yweather:astronomy] in the Yahoo XML Doc. Tried various combinations along the lines of:

echo $yweather->astronomy == 'sunrise';

Is pulling a value from the sunrise element the right terminology? Struggling to find much in the way of help using this terminology on the web.

The remainder of the code is functioning as I wish

Yahoo XML Doc - snippet

<rss xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" 
xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">
  <channel>
    <title>Yahoo! Weather - New York, NY</title>
    <link>
      http://us.rd.yahoo.com/dailynews/rss/weather/New_York__NY/*http://weather.yahoo.com/forecast/USNY0996_f.html
    </link>
    <description>Yahoo! Weather for New York, NY</description>
    <language>en-us</language>
    <lastBuildDate>Mon, 12 Dec 2011 1:50 pm EST</lastBuildDate>
    <ttl>60</ttl>
    <yweather:location city="New York" region="NY" country="US"/>
    <yweather:units temperature="F" distance="mi" pressure="in" speed="mph"/>
    <yweather:wind chill="40" direction="0" speed="5"/>
    <yweather:atmosphere humidity="37" visibility="10" pressure="30.54" rising="2"/>
    <yweather:astronomy sunrise="7:09 am" sunset="4:26 pm"/>

rssweather.php

<?php

// Get XML data from source
$feed = file_get_contents("http://weather.yahooapis.com/forecastrss?p=USNY0996&u=f");

// Check to ensure the feed exists
if(!$feed){
die('Weather not found! Check feed URL');
}

$xml = new SimpleXmlElement($feed);

foreach ($xml->channel as $entry){
    echo "<strong>Description</strong> "; 
    echo $entry->description; 
    echo "<br /><strong>Collected on</strong> ";
    echo $entry->lastBuildDate;

    //Use that namespace
    $yweather = $entry->children("http://xml.weather.yahoo.com/ns/rss/1.0");
    echo "<br /><strong>Sunrise</strong> ";
    echo $yweather->astronomy == 'sunrise';

}
>?

回答1:


My final solution

// Get and return sunrise time 
function get_sunrise_time(SimpleXMLElement $xml) {
    $weather['sunrise'] = $xml->channel->children('yweather', TRUE)->astronomy[1]->attributes()->sunrise;

    return $weather;
}


来源:https://stackoverflow.com/questions/8480933/trying-to-pull-in-elements-from-yahoo-weather-xml

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!