欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

asp.net 获取银行货币汇率的代码

程序员文章站 2022-04-10 12:32:54
...
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中文网!

相关标签: 银行货币 汇率