专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » html解析:请求网址并解析返回的html »正文

html解析:请求网址并解析返回的html

来源: 发布时间:星期四, 2009年2月12日 浏览:107次 评论:0


把远程服务器传回Html解析到类里面为GridView等提供数据源
1 、向远程服务器Post数据
public PostData( url, data, out info)
{

info = \"\";
CookieContainer cc = CookieContainer;
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.CookieContainer = cc;
request.Method = \"POST\";
request.ContentType = \"application/x-www-form-urlencoded\";
Stream requestStream = request.GetRequestStream;
Array = Encoding.UTF8.GetBytes(data);
requestStream.Write(Array, 0, Array.Length);
requestStream.Close;
HttpWebResponse response = request.GetResponse as HttpWebResponse;
Uri responseUri = response.ResponseUri;
Stream receiveStream = response.GetResponseStream;
Encoding encode = .Text.Encoding.GetEncoding(\"utf-8\");
StreamReader readStream = StreamReader(receiveStream, encode);
result = readStream.ReadToEnd;
info = result;
0;

}2、解析返回html有省略
public ClassInfo GetClass( html)
{

ArrayList ar = ArrayList;
ArrayList arr = ArrayList;
table = \"\";
Regex regtable = Regex(@\"(?<=<table.*>).*?(?=</table>)\", RegexOptions.Singleline);
Match ma = regtable.Match(html);
while (ma.Success)
{
(ma.Value.Trim != \"\")
{
arr.Add(HttpUtility.HtmlDecode(ma.Value));
}
ma = ma.NextMatch;
}
for ( i = 0; i < arr.Count; i)
{
table = arr[i]. + table;
}


Regex reg = Regex(@\"(?<=<.*?>).*?(?=<.*?>)\", RegexOptions.Singleline);
Match m = reg.Match(table);


while (m.Success)
{
(m.Value.Trim != \"\")
{

ar.Add(HttpUtility.HtmlDecode(m.Value));
}
m = m.NextMatch;


}


ClassInfo ci = ClassInfo[no];
for ( i = 0; i < no; i)
{
ci[i] = ClassInfo;
ci[i].RegisterDate = (ar[i * 8 + 0]).;

ci[i].LoginDate = (ar[i * 8 + 1]).;
ci[i].LogoutDate = (ar[i * 8 + 2]).;
ci[i].UseMin = ar[i * 8 + 3].;
ci[i].ClassName = ar[i * 8 + 5].;
ci[i].ClassType = ar[i * 8 + 6].;
ci[i].Percent = ar[i * 8 + 7].;

}



ci;


}
3、定义ClassInfo类(课程类)用CodeSmith生成
public ClassInfo
{
Member Variables#region Member Variables


protected _loginDate;
protected _logoutDate;
protected _registerDate;
protected _useMin;
protected _Name;
protected _Type;
protected _percent;
//protected _nouse;
#endregion

Constructors#region Constructors

public ClassInfo { }

public ClassInfo( loginDate, logoutDate, registerDate, useMin, Name, Type, percent)
{
this._loginDate = loginDate;
this._logoutDate = logoutDate;
this._registerDate = registerDate;
this._useMin = useMin;
this._Name = Name;
this._Type = Type;
this._percent = percent;
}

#endregion

Public Properties#region Public Properties
// public NoUse
// {
// get{ _nouse;}
// { _nouse= value;}
// }



public LoginDate
{
get { _loginDate; }
{ _loginDate = value; }
}

public LogoutDate
{
get { _logoutDate; }
{ _logoutDate = value; }
}



public RegisterDate
{
get { _registerDate; }
{ _registerDate = value; }
}

public UseMin
{
get { _useMin; }
{ _useMin = value; }
}

public ClassName
{
get { _Name; }

{
(value != null && value.Length > 50)
throw ArgumentOutOfRangeException(\"Invalid value for ClassName\", value, value.);
_Name = value;
}
}

public ClassType
{
get { _Type; }

{
(value != null && value.Length > 50)
throw ArgumentOutOfRangeException(\"Invalid value for ClassType\", value, value.);
_Type = value;
}
}

public Percent
{
get { _percent; }

{
(value != null && value.Length > 50)
throw ArgumentOutOfRangeException(\"Invalid value for Percent\", value, value.);
_percent = value;
}
}

#endregion
}

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: