2009-10-13 6 views
0

J'ai besoin de mettre en œuvre api météo Xoap.comment implémenter Xoap api météo

S'il vous plaît aider avec le code.

+0

J'ai créé un .Net API pour le flux xml de weather.com. http://eclipsed4utoo.com/blog/library-weather-channel/ –

Répondre

1

Vérifiez la link

Essayez le code:

dans web.config

<appSettings> 

<add key="PartnerID" value="xxx"/> 
<add key="LicenseKey" value="xxx" /> 
<add key="ExtForecastLength" value="5" /> 

</appSettings> 

weather.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Weather.aspx.cs" Inherits="Weather" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title>Untitled Page</title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
<asp:Xml ID="Xml1" runat="server"></asp:Xml> 
</div> 
</form> 
</body> 
</html> 

Weather.aspx.cs

using System; 
using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 
using System.Net; 
using System.Xml; 
using System.IO; 

public partial class Weather : System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
String reqUrl = "http://xoap.weather.com/weather/local/29206?cc=*&dayf=" + 
ConfigurationSettings.AppSettings.Get("ExtForecastLength") + 
"&prod=xoap&par=" + ConfigurationSettings.AppSettings.Get("PartnerID") + 
"&key=" + ConfigurationSettings.AppSettings.Get("LicenseKey"); 
// First we request our content from our provider source .. in this case .. The Weather Channel 
HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(reqUrl); 
//load the response into a response object 
WebResponse resp = wr.GetResponse(); 
// create a new stream that can be placed into an XmlTextReader 
Stream str = resp.GetResponseStream(); 
XmlTextReader reader = new XmlTextReader(str); 
reader.XmlResolver = null; 
// create a new Xml document 
XmlDocument doc = new XmlDocument(); 
doc.Load(reader); 
// set out object properties 
Xml1.Document = doc; 
Xml1.TransformSource = "XSLTFile.xslt"; 


} 
} 

XSLTFile.xslt: -

<?xml version="1.0" encoding="iso-8859-1" ?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="/weather"> 
<table width="225px" border="0" cellSpacing="0" cellPadding="0" bgcolor="EFF5D7" ID="Table1"> 
<tr> 
<td colspan="2" align="center" valign="center" 
style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana"> 
<xsl:value-of select="loc/dnam"></xsl:value-of> 
</td> 
</tr> 
<tr> 
<xsl:variable name="med-img-dir">./images/weather/64x64</xsl:variable> 
<xsl:variable name="img-ext">png</xsl:variable> 
<xsl:variable name="iconnumber"> 
<xsl:value-of select="cc/icon"></xsl:value-of> 
</xsl:variable> 
<td height="64px" width="64px" align="center" valign="center"> 
<img src="{$med-img-dir}/{$iconnumber}.{$img-ext}"></img> 
</td> 
<td width="161px" align="center" valign="center" style="FONT-SIZE: 22pt; 
FONT-WEIGHT: bold"> 
<xsl:value-of select="cc/tmp"></xsl:value-of>°F 
</td> 
</tr> 
<tr> 
<td align="center" valign="center" style="FONT-SIZE: 9pt; COLOR: black; 
FONT-FAMILY: Verdana; HEIGHT: 33px"> 
<xsl:value-of select="cc/t"></xsl:value-of> 
</td> 
<td align="center" valign="center" style="FONT-SIZE: 9pt; COLOR: black; 
FONT-FAMILY: Verdana; HEIGHT: 33px"> 
Feels like 
<xsl:value-of select="cc/flik"></xsl:value-of>°F 
</td> 
</tr> 
<table width="225px" border="0" cellSpacing="0" cellPadding="0" bgcolor="EFF5D7" ID="Table2"> 
<tr> 
<td width="10%"></td> 
<td width="50%" align="left" valign="center" style="FONT-SIZE: 9pt; COLOR: black; 
FONT-FAMILY: Verdana"> 
UV Index: 
</td> 
<td width="40%" align="left" valign="center" style="FONT-SIZE: 9pt; COLOR: black; 
FONT-FAMILY: Verdana"> 
<xsl:value-of select="cc/uv/i"></xsl:value-of> 
<xsl:value-of select="cc/uv/t"></xsl:value-of> 
</td> 
</tr> 
<tr> 
<td width="10%"></td> 
<td width="50%" align="left" valign="center" style="FONT-SIZE: 9pt; COLOR: black; 
FONT-FAMILY: Verdana"> 
Dew Point: 
</td> 
<td width="40%" align="left" valign="center" style="FONT-SIZE: 9pt; COLOR: black; 
FONT-FAMILY: Verdana"> 
<xsl:value-of select="cc/dewp"></xsl:value-of>°F 
</td> 
</tr> 
<tr> 
<td width="10%"></td> 
<td width="50%" align="left" valign="center" style="FONT-SIZE: 9pt; COLOR: black; 
FONT-FAMILY: Verdana"> 
Humidity: 
</td> 
<td width="40%" align="left" valign="center" style="FONT-SIZE: 9pt; COLOR: black; 
FONT-FAMILY: Verdana"> 
<xsl:value-of select="cc/hmid"></xsl:value-of>% 
</td> 
</tr> 
<tr> 
<td width="10%"></td> 
<td width="50%" align="left" valign="center" style="FONT-SIZE: 9pt; COLOR: black; 
FONT-FAMILY: Verdana"> 
Visibility: 
</td> 
<td width="40%" align="left" valign="center" style="FONT-SIZE: 9pt; COLOR: black; 
FONT-FAMILY: Verdana"> 
<xsl:value-of select="cc/vis"></xsl:value-of>miles 
</td> 
</tr> 
<tr> 
<td width="10%"></td> 
<td width="50%" align="left" valign="top" style="FONT-SIZE: 9pt; COLOR: black; 
FONT-FAMILY: Verdana"> 
Pressure: 
</td> 
<td width="40%" align="left" valign="top" style="FONT-SIZE: 9pt; COLOR: black; 
FONT-FAMILY: Verdana"> 
<xsl:value-of select="cc/bar/r"></xsl:value-of>inches and 
<xsl:value-of select="cc/bar/d"></xsl:value-of> 
</td> 
</tr> 
<tr> 
<td width="10%"></td> 
<td width="50%" align="left" valign="top" style="FONT-SIZE: 9pt; COLOR: black; 
FONT-FAMILY: Verdana"> 
Wind: 
</td> 
<td width="40%" align="left" valign="top" style="FONT-SIZE: 9pt; COLOR: black; 
FONT-FAMILY: Verdana"> 
<xsl:value-of select="cc/wind/s"></xsl:value-of>mph 
</td> 
</tr> 
</table> 
<table width="225px" border="0" cellSpacing="0" cellPadding="0" bgcolor="EFF5D7" ID="Table3"> 
<tr> 
<td colspan="5" width="100%" align="center"><u>Extended Forecast</u></td> 
</tr> 
<tr> 
<xsl:for-each select="dayf/day"> 
<xsl:if test="@d > 0"> 
<td width="25%" align="center" valign="top" style="FONT-SIZE: 7pt; COLOR: black; 
FONT-FAMILY: Verdana"> 
<xsl:value-of select="@t"></xsl:value-of> 
</td> 
</xsl:if> 
</xsl:for-each> 
</tr> 
<tr> 
<xsl:variable name="small-img-dir">./images/weather/32x32</xsl:variable> 
<xsl:variable name="img-ext">png</xsl:variable> 
<xsl:for-each select="dayf/day"> 
<xsl:if test="@d > 0"> 
<xsl:variable name="iconnumber"> 
<xsl:value-of select="part/icon"></xsl:value-of> 
</xsl:variable> 
<td width="25%" align="center" valign="center"> 
<img border="1" src="{$small-img-dir}/{$iconnumber}.{$img-ext}"></img> 
</td> 
</xsl:if> 
</xsl:for-each> 
</tr> 
<tr> 
<xsl:for-each select="dayf/day"> 
<xsl:if test="@d > 0"> 
<td width="25%" align="center" valign="top" style="FONT-SIZE: 7pt; COLOR: black; 
FONT-FAMILY: Verdana"> 
High: 
<xsl:value-of select="hi"></xsl:value-of> 
</td> 
</xsl:if> 
</xsl:for-each> 
</tr> 
<tr> 
<xsl:for-each select="dayf/day"> 
<xsl:if test="@d > 0"> 
<td width="25%" align="center" valign="top" style="FONT-SIZE: 7pt; COLOR: black; 
FONT-FAMILY: Verdana"> 
Low: 
<xsl:value-of select="low"></xsl:value-of> 
</td> 
</xsl:if> 
</xsl:for-each> 
</tr> 
<tr> 
<xsl:for-each select="dayf/day"> 
<xsl:if test="@d > 0"> 
<td width="25%" align="center" valign="top" style="FONT-SIZE: 7pt; COLOR: black; 
FONT-FAMILY: Verdana"> 
<xsl:value-of select="part/t"></xsl:value-of> 
</td> 
</xsl:if> 
</xsl:for-each> 
</tr> 
</table> 
<table width="225px" border="0" cellSpacing="0" cellPadding="4" bgcolor="EFF5D7" ID="Table4"> 
<tr> 
<xsl:variable name="twclink">http://www.weather.com/?prod=xoap</xsl:variable> 
<td width="20%" align="center" valign="top" style="FONT-SIZE: 7pt; COLOR: black; 
FONT-FAMILY: Verdana"> 
Weather data provided by<a href="{$twclink}" target="_none"> 
<img border="0" src="./images/weather/logos/TWClogo_32px.png"></img></a> 
</td> 
</tr> 
</table> 
</table> 
</xsl:template> 
</xsl:stylesheet>