2016-03-29 7 views
0

weatherzoneの現在の温度のみを抽出して表示する方法は? C#のコードでweatherzoneからデータをフェッチ

string url = "http://rss.weatherzone.com.au/?u=12994-1285&lt=twcid&lc=160255&obs=1&fc=1"; 
XmlReader reader = XmlReader.Create(url); 
SyndicationFeed feed = SyndicationFeed.Load(reader); 
reader.Close(); 

取得し、現在の天気:

var temperature = feed.Items.ToList()[0].Summary.Text.Trim(); 

出力:

<b>Temperature:</b> 33.0&#176;C 
<img align="top" src="http://www.weatherzone.com.au/images/widgets/nav_trend_steady.gif" alt="steady"/> 
<br /> 
<b>Feels like:</b> 38.0&#176;C<br /> 
<b>Dew point:</b> 23.0&#176;C 
<img align="top" src="http://www.weatherzone.com.au/images/widgets/nav_trend_steady.gif" alt="steady"/> 
<br /> 
<b>Relative humidity:</b> 56%<br /> 
<b>Wind:</b> NE at 18 km/h, gusting to km/h 
<img align="top" src="http://www.weatherzone.com.au/images/widgets/nav_trend_steady.gif" alt="steady"/> 
<br /> 
<b>Rain:</b> mm since 9am<br /> 
<b>Pressure:</b> 1013.0 hPa 
<img align="top" src="http://www.weatherzone.com.au/images/widgets/nav_trend_steady.gif" alt="steady"/> 
<br /> 

質問:私は、この出力の温度を取得できますか?

+0

あなた 'SyndicationFeed'は何ですか?あなたは完全な名前空間を提供できますか? –

+0

こんにちは、System.ServiceModel.dllからSystem.ServiceModel.Syndicationを使用して追加できます –

答えて

0

あなたはこのような何か原油を行うことができます。

var stringTemp = "<b>Temperature:</b> 33.0&#176;C <img align=\"top\" src=\"http://www.weatherzone.com.au/images/widgets/nav_trend_steady.gif\" alt=\"steady\"/> <br /> <b>Feels like:</b> 38.0&#176;C<br /> <b>Dew point:</b> 23.0&#176;C <img align=\"top\" src=\"http://www.weatherzone.com.au/images/widgets/nav_trend_steady.gif\" alt=\"steady\"/> <br /> <b>Relative humidity:</b> 56%<br /> <b>Wind:</b> NE at 18 km/h, gusting to km/h <img align=\"top\" src=\"http://www.weatherzone.com.au/images/widgets/nav_trend_steady.gif\" alt=\"steady\"/> <br /> <b>Rain:</b> mm since 9am<br /> <b>Pressure:</b> 1013.0 hPa <img align=\"top\" src=\"http://www.weatherzone.com.au/images/widgets/nav_trend_steady.gif\" alt=\"steady\"/> <br />"; 
var start = stringTemp.IndexOf("</b>"); 
var end = stringTemp.IndexOf("<img"); 
var temp = stringTemp.Substring(start + "</b>".Length, end - start - "<img".Length); 
0

別の方法

var temperature = "<b>Temperature:</b> 33.0&#176;C <img align=\"top\" src=\"http://www.weatherzone.com.au/images/widgets/nav_trend_steady.gif\" alt=\"steady\"/> <br /> <b>Feels like:</b> 38.0&#176;C<br /> <b>Dew point:</b> 23.0&#176;C <img align=\"top\" src=\"http://www.weatherzone.com.au/images/widgets/nav_trend_steady.gif\" alt=\"steady\"/> <br /> <b>Relative humidity:</b> 56%<br /> <b>Wind:</b> NE at 18 km/h, gusting to km/h <img align=\"top\" src=\"http://www.weatherzone.com.au/images/widgets/nav_trend_steady.gif\" alt=\"steady\"/> <br /> <b>Rain:</b> mm since 9am<br /> <b>Pressure:</b> 1013.0 hPa <img align=\"top\" src=\"http://www.weatherzone.com.au/images/widgets/nav_trend_steady.gif\" alt=\"steady\"/> <br />"; 

のC#:

private static string Temperature(string temperature) 
    { 
     try 
     { 
      string[] value = Regex.Split(temperature, "\n"); 
      string[] temp = Regex.Split(value[0], "</b> "); 
      return temp[1].Substring(0, 2); 
     } 
     catch { return string.Empty; } 
    } 
関連する問題