ホームページ  >  記事  >  バックエンド開発  >  銀行の通貨為替レートを取得するための asp.net コード

銀行の通貨為替レートを取得するための asp.net コード

高洛峰
高洛峰オリジナル
2017-01-16 10:41:141784ブラウズ

class ExchangeRate 
{ 

private const string _BASEURL = "网页地址"; 
public const string CURRENCYCODE = "货币类型以'|'隔开";//货币类型 

public Hashtable GetValues() 
{ 
Hashtable htReturn = new Hashtable(); 

string url = _BASEURL; //+ HttpUtility.UrlEncode(tmSet.ToString("yyyy/MM/dd", DateTimeFormatInfo.InvariantInfo)); 

WebClient wc = new WebClient(); 
string sHtml = wc.DownloadString(url); 
string sXml = string.Empty; 
int iValueCnt = CURRENCYCODE.Split(new char[] { '|' }, 10, StringSplitOptions.RemoveEmptyEntries).Length; 
string[] sTBody = sHtml.Split(new string[] { "<tbody>", "</tbody>" }, StringSplitOptions.RemoveEmptyEntries); 
foreach (string ss in sTBody) 
{ 
if (ss.Contains("Currency Name")) 
{ 
string[] sbrs = ss.Split(new string[] { "</tr>" }, StringSplitOptions.RemoveEmptyEntries); 
foreach (string sbr in sbrs) 
{ 
string scur = string.Empty; 
double dRate = GetCurrencyRate(sbr, out scur); 

if (dRate != 0.0 && !string.IsNullOrEmpty(scur)) 
{ 
htReturn.Add(scur, dRate * 0.01); 
if (htReturn.Count >= iValueCnt) 
break; 
} 
} 
break; 
} 
} 


return htReturn; 
} 

private double GetCurrencyRate(string source, out string sCurrency) 
{ 
sCurrency = string.Empty; 

string sPattern = @"<td.+?>(.+?)</td>"; 
foreach (Match m in Regex.Matches(source, sPattern)) 
{ 
string ss = m.Groups[1].Value; 
if (IsNumeric(ss)) 
return double.Parse(ss); 
else 
{ 
if (CURRENCYCODE.Contains(ss)) 
sCurrency = ss.Trim(); 
else 
break; 
} 
} 

return 0.0; 
} 

public static bool IsNumeric(string str) 
{ 
if (string.IsNullOrEmpty(str)) return false; 

System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"^[-]?\d+[.|,]?\d*$"); 
return reg.IsMatch(str); 
} 
}

銀行通貨為替レート コードの取得に関する asp.net 関連の記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。