sonic1234
asked on
XSLT Mofification for Weather Feed
I'm calling the following XML feed;
http://www.google.co.uk/ig/api?weather=tamworth%20nsw
Being transformed with the following XSLT
Creates the following HTML
How can I modify the XSLT so that the value for the first <div class="forecast_conditions "> <div class="icon"> is written to the <div class="current_conditions" > <div class="icon">
Thus the output would be something like this - note the change on line 12, which is getting the same value as line 19;;
http://www.google.co.uk/ig/api?weather=tamworth%20nsw
Being transformed with the following XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="html"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/*">
<xsl:apply-templates select="node()"/>
</xsl:template>
<xsl:template match="*">
<div>
<xsl:attribute name="class">
<xsl:value-of select="concat(name(),'_data')"/>
</xsl:attribute>
<xsl:apply-templates select="node()|@data"/>
</div>
</xsl:template>
<xsl:template match="forecast_information|current_conditions|forecast_conditions|forecast_date">
<div>
<xsl:attribute name="class">
<xsl:value-of select="name()"/>
</xsl:attribute>
<xsl:apply-templates select="node()|@data"/>
</div>
</xsl:template>
<xsl:template match="icon">
<div>
<xsl:attribute name="class">
<xsl:value-of select="name()"/>
</xsl:attribute>
<img src="/cp_themes/default{@data}"/>
</div>
</xsl:template>
<xsl:template match="postal_code|latitude_e6|longitude_e6|temp_f"/>
<xsl:template match="low | high">
<div>
<xsl:attribute name="class">
<xsl:value-of select="concat(name(), '_data')"/>
</xsl:attribute>
<xsl:call-template name="farenheit-to-celsius">
<xsl:with-param name="temp" select="@data"/>
</xsl:call-template>
</div>
</xsl:template>
<xsl:template match="*" mode="id">
<xsl:value-of select="concat(name(),'_data')"/>
</xsl:template>
<xsl:template name="farenheit-to-celsius">
<xsl:param name="temp"/>
<xsl:choose>
<xsl:when test="not(string(number($temp)) = 'NAN')">
<xsl:value-of select="format-number(($temp - 32) * (5 div 9) , '##.0')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$temp"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Creates the following HTML
<div class="weather_data">
<div class="forecast_information">
<div class="city_data">tamworth, NSW</div>
<div class="forecast_date">2011-10-26</div>
<div class="current_date_time_data">2011-10-26 14:00:00 +0000</div>
<div class="unit_system_data">US</div>
</div>
<div class="current_conditions">
<div class="condition_data"></div>
<div class="temp_c_data">17</div>
<div class="humidity_data">Humidity: 46%</div>
<div class="icon"><img src="/cp_themes/default"></div>
<div class="wind_condition_data">Wind: E at 18 mph</div>
</div>
<div class="forecast_conditions">
<div class="day_of_week_data">Wed</div>
<div class="low_data">12.2</div>
<div class="high_data">23.9</div>
<div class="icon"><img src="/cp_themes/default/ig/images/weather/mostly_sunny.gif"></div>
<div class="condition_data">Partly Sunny</div>
</div>
<div class="forecast_conditions">
<div class="day_of_week_data">Thu</div>
<div class="low_data">13.9</div>
<div class="high_data">26.1</div>
<div class="icon"><img src="/cp_themes/default/ig/images/weather/sunny.gif"></div>
<div class="condition_data">Clear</div>
</div>
<div class="forecast_conditions">
<div class="day_of_week_data">Fri</div>
<div class="low_data">17.8</div>
<div class="high_data">30.0</div>
<div class="icon"><img src="/cp_themes/default/ig/images/weather/cloudy.gif"></div>
<div class="condition_data">Cloudy</div>
</div>
<div class="forecast_conditions">
<div class="day_of_week_data">Sat</div>
<div class="low_data">16.1</div>
<div class="high_data">28.9</div>
<div class="icon"><img src="/cp_themes/default/ig/images/weather/chance_of_storm.gif"></div>
<div class="condition_data">Chance of Storm</div>
</div>
</div>
How can I modify the XSLT so that the value for the first <div class="forecast_conditions
Thus the output would be something like this - note the change on line 12, which is getting the same value as line 19;;
<div class="weather_data">
<div class="forecast_information">
<div class="city_data">tamworth, NSW</div>
<div class="forecast_date">2011-10-26</div>
<div class="current_date_time_data">2011-10-26 14:00:00 +0000</div>
<div class="unit_system_data">US</div>
</div>
<div class="current_conditions">
<div class="condition_data"></div>
<div class="temp_c_data">17</div>
<div class="humidity_data">Humidity: 46%</div>
<div class="icon"><img src="/cp_themes/default/ig/images/weather/mostly_sunny.gif"></div>
<div class="wind_condition_data">Wind: E at 18 mph</div>
</div>
<div class="forecast_conditions">
<div class="day_of_week_data">Wed</div>
<div class="low_data">12.2</div>
<div class="high_data">23.9</div>
<div class="icon"><img src="/cp_themes/default/ig/images/weather/mostly_sunny.gif"></div>
<div class="condition_data">Partly Sunny</div>
</div>
<div class="forecast_conditions">
<div class="day_of_week_data">Thu</div>
<div class="low_data">13.9</div>
<div class="high_data">26.1</div>
<div class="icon"><img src="/cp_themes/default/ig/images/weather/sunny.gif"></div>
<div class="condition_data">Clear</div>
</div>
<div class="forecast_conditions">
<div class="day_of_week_data">Fri</div>
<div class="low_data">17.8</div>
<div class="high_data">30.0</div>
<div class="icon"><img src="/cp_themes/default/ig/images/weather/cloudy.gif"></div>
<div class="condition_data">Cloudy</div>
</div>
<div class="forecast_conditions">
<div class="day_of_week_data">Sat</div>
<div class="low_data">16.1</div>
<div class="high_data">28.9</div>
<div class="icon"><img src="/cp_themes/default/ig/images/weather/chance_of_storm.gif"></div>
<div class="condition_data">Chance of Storm</div>
</div>
</div>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
welcome
ASKER