获取银行货币汇率的
這個主要公司做外貿的每天都需要更新匯率,本來以前有一個服務可以調用,但是那個連接用不了 所以就寫了一個這樣的東西 套取網頁顯示信息
?
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);
????????}
????}
轉載于:https://www.cnblogs.com/xiaoshuai/archive/2010/06/17/1759736.html
總結
- 上一篇: DataContract 添加到 Dat
- 下一篇: 鲁迅散文——随感录四十九