【问题标题】:Trying to pull in elements from Yahoo Weather XML试图从 Yahoo Weather XML 中提取元素
【发布时间】:2011-12-12 21:13:21
【问题描述】:

试图从 Yahoo XML Doc 中的 [yweather:astronomy] 中的日出元素中提取一个值。 尝试了各种组合:

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

从日出元素中提取值是正确的术语吗?努力寻找在网络上使用此术语的帮助方式。

代码的其余部分按我的意愿运行

Yahoo XML 文档 - sn-p

<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';

}
>?

【问题讨论】:

    标签: php xml rss


    【解决方案1】:

    我的最终解决方案

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

    【讨论】:

      猜你喜欢
      • 2017-04-16
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      相关资源
      最近更新 更多