2010-12-07 32 views
0

Salutations,Parse données météorologiques de Weatherbug en PHP

J'essaie d'analyser les données météorologiques en direct du flux RSS de Weatherbug en PHP. J'avais précédemment utilisé simplexml_load_string() avec les données météorologiques de la NOAA mais je n'arrive pas à comprendre comment sortir les données dont j'ai besoin de Weatherbug.

Voici le XML pour les conditions actuelles:

<rss version="2.0" xmlns:georss="http://www.georss.org/georss"> 
<channel> 

     <title>Observations from Saint Inigoes, MD - USA</title> 


    <link>http://weather.weatherbug.com/MD/Saint Inigoes-weather.html?ZCode=Z5546&amp;Units=0&amp;stat=KNUI</link> 
    <description>Weatherbug, the owner of the world's largest weather network is now providing an API to it's weather data in the form of RSS. This will enable it's enthusiastic users to build their own applications.</description> 
    <language>en-us</language> 

    <lastBuildDate>Tue, 07 Dec 2010 16:00:00 GMT</lastBuildDate> 
    <ttl>60</ttl> 
    <aws:weather xmlns:aws="http://www.aws.com/aws"><aws:api version="2.0" /><aws:WebURL>http://weather.weatherbug.com/MD/Saint Inigoes-weather.html?ZCode=Z5546&amp;Units=0&amp;stat=KNUI</aws:WebURL><aws:InputLocationURL>http://weather.weatherbug.com/VA/Heathsville-weather.html?ZCode=Z5546&amp;Units=0</aws:InputLocationURL><aws:station requestedID="" id="KNUI" name="Webster Field, Naval Electronic Syste" city="Saint Inigoes" state=" MD" zipcode="20684" country="USA" latitude="38.1488876342773" longitude="-76.4197235107422" /><aws:current-condition icon="http://deskwx.weatherbug.com/images/Forecast/icons/cond007.gif">Sunny</aws:current-condition><aws:temp units="&amp;deg;F">33.1</aws:temp><aws:rain-today units="&quot;">0</aws:rain-today><aws:wind-speed units="mph">14</aws:wind-speed><aws:wind-direction>WNW</aws:wind-direction><aws:gust-speed units="mph">28</aws:gust-speed><aws:gust-direction>WNW</aws:gust-direction></aws:weather> 

    <image> 
    <title>Local Weather from WeatherBug</title> 
    <width>142</width> 
    <height>18</height> 
    <link>http://weather.weatherbug.com/MD/Saint Inigoes-weather.html?ZCode=Z5546&amp;Units=0&amp;stat=KNUI</link> 
    <url>http://www.weatherbug.com/aws/imagesHmPg0604/img_wxbug_logo_whiteBG.gif</url> 

    </image> 

      <item> 

         <title>Live Conditions from Saint Inigoes, MD - USA</title>       

        <link>http://weather.weatherbug.com/MD/Saint Inigoes-weather.html?ZCode=Z5546&amp;Units=0&amp;stat=KNUI</link> 

        <pubDate>Tue, 07 Dec 2010 14:53:00 GMT</pubDate> 
        <description><![CDATA[ 

          <img src="http://deskwx.weatherbug.com/images/Forecast/icons/cond007.gif" border="0" alt="Current Conditions"/>&nbsp;&nbsp;&nbsp; 
        <b>Sunny</b> <br /> 

       <b>Temperature:</b> 33.1 &deg;F&nbsp;&nbsp; 
       <br /> 
       <b>Wind Speed:</b> 14 mph WNW&nbsp;&nbsp; 
      <br /> 
       <b>Gusts:</b> 28 mph WNW &nbsp;&nbsp; 
       <b>Rain Today:</b> 0 &quot; &nbsp;&nbsp; 
       <br /> 
        ]]></description> 
         <georss:point>38.1488876342773 -76.4197235107422</georss:point> 

         <guid isPermaLink="false">Tue, 07 Dec 2010 16:00:36 GMT-Station1</guid> 


       </item> 

</channel> 
    </rss> 

La partie que je le plus besoin est <description> sous <item>. Toute aide serait grandement appréciée!

Répondre

0

Essayez ceci:

$description = (string)$simpleXml->channel->item->description; 
+0

travaillé comme un charme, merci! Pourriez-vous me donner une ventilation rapide de ce qui se passe ici? Je suis relativement nouveau sur simplexml_load_string – NightMICU

+0

Eh bien, '-> channel' pour obtenir le premier noeud * channel *, puis' -> item' pour obtenir le premier noeud * item *, et ainsi de suite. Cela retournera toujours un objet 'SimpleXMLElement', mais si vous le transtypas en une chaîne (ie:' (string) '), il retournera le contenu interne du noeud. – netcoder