日期:2014-05-17  浏览次数:20491 次

求读取一个静态html页面指定内容的方法,在线等!!!!!
我现在的方法是在后台已经将一个地址的html代码全部读出来,但是我需要的只是这个html代码
里的某一个table,而且这个table有很多行,我只需要table前面10行。希望有详细解决方案

------解决方案--------------------
首先要说清楚你是要在页面用js读还是后台读一个HTML文件
------解决方案--------------------
利用WebClient得到网站源码

然后利用正则匹配你想要的table
------解决方案--------------------
C# code
  System.Net.HttpWebRequest req;
                    System.Net.HttpWebResponse res;
                    string url = string.Empty;
                    url = "http://" + HttpContext.Current.Request.Url.Authority + "/ErGongYingView/" + Supply.Id;
                    req = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
                    res = (System.Net.HttpWebResponse)req.GetResponse();
                    System.IO.StreamReader strm = new System.IO.StreamReader(res.GetResponseStream(), System.Text.Encoding.GetEncoding("gb2312"));
                    string aa = strm.ReadToEnd();
                    //Response.Write(aa);

------解决方案--------------------
一个笨方法:
先取出那个table html 字符串,再以<tr>split它为数组,
循环数组仅取top 10 后break!
------解决方案--------------------
将其当作一个字符串处理
用substring截取
首先找到开始位子:int s = strs.indexof("<table id=''")//根据这个table独特唯一的字符串来找
然后从开始位子找到第10个</tr> //<td>里面没有其他<table><tr>的情况下
最后加上一个</table>就是一个新的table了


------解决方案--------------------
能给出你的html字符串码,大家再帮你写个正则,亲
------解决方案--------------------
string test = File.ReadAllText(Server.MapPath("~/1.txt"));//html字符存文件了,方便取测试


Regex reg = new Regex(@"(<tr.*?tr>.+?<tr.*?tr>.+?<tr.*?tr>)", RegexOptions.Multiline | RegexOptions.Singleline);


Response.Write(reg.IsMatch(test));
Response.Write(reg.Match(test).Groups[0].Value);


<tr.*?tr>这个东西有几行写几行吧,也可以循环拼接,写的比较蛋疼啊,求神人给出答案

------解决方案--------------------

正则达人 tim 呢
------解决方案--------------------
探讨

这个截取table的正则要如何写???

------解决方案--------------------
不用正则表达式

htmlagilitypack

百度一下就知道答案洛

参数为 xpath 定位节点