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
相关文章读者评论发表评论 |