Skip to main content
This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.
I want to integrate the weather from yahoo into my site.
The problem is that <yweather:condition text="Partly Cloudy" code="30" temp="15" date="Thu, 09 Aug 2007 10:55 am CEST" /> is not imported because of the ':'
Does someone know how to read element with column in SimpleXMLElement?
Is there a way to cash the output?
Freeyland, if you want to read namespaced elements (qname) best practice would be to use Xpath. You could try out some query such as ;
$conditions = $xml->xpath("//yweather:condition");
But to make the whole process easy I've made an update to the mashups module which could handle such feeds. You can download the latest build in the [url =http://open.silverstripe.com/browser/modules/mashups/trunk]trunk of mashups module[/url] and try out the following code. This will fetch the attribute values of condition tag in Yahoo Weather feed.
In your controller;
$yw = new RestfulService("http://weather.yahooapis.com/forecastrss");
$params = array(
"u" => "c",
"p" => "USIL0225"
$conn = $yw->connect();
$result = $yw->searchAttributes($conn, "//yweather:condition");
and in the template;
<% control YahooWeather %>
<p>weather conditions for $date<br/>
$text - tempreature -$temp</p>
<% end_control %>
Hope this helps :)
>>Is there a way to cash the output?
Currently Mashups module doesn't support caching, but it's something on the road maps for future releases.