您的位置:程序门 -> .net技术 -> c#



请教从网页中的<tr><td></td></tr>中获取格式化数据


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请教从网页中的<tr><td></td></tr>中获取格式化数据
发表于:2007-01-31 16:23:11 楼主
问题描述:要做一个客户端程序,通过指定的网址,把网页上有的数据获取到本地,比如:
网上的数据为:
<tr>
<td> 小明 </td>
<td> 男 </td>
<td> 21 </td>
</tr>
<tr>
<td> 小张 </td>
<td> 女 </td>
<td> 22 </td>
</tr>
就是获取这样一行一行的数据到本地.
虚心请教各位,请问哪里有这方面的资料和demo
多谢
发表于:2007-08-07 08:17:461楼 得分:0
定期来
发表于:2007-08-07 21:12:182楼 得分:0
最好把这些tr,td对应的tabel取到一个html元素变量里.
然后着对它来分析.
发表于:2007-08-07 21:32:123楼 得分:0
期待有答案!
发表于:2007-08-07 21:46:074楼 得分:0
最好还是自己写个函数!大要如下:
string   content;//网页内容
int   btabel;   //table   开始
int   etable;   //table   结束
int   btr;     //   每一行   开始即 <tr>
int   etr;     //每一行   开始 </tr>
int   flag;   //我们程序分析的位置
btable=content.indexof( " <table> ",0);
flag=btable;
for()
{
btr=content.indexof( " <tr> ",flag);(要判断是否该break了)
etr=content.indexof( " </tr> ",btr);
falg=etr+4;
string   aline=content.substring(btr,rte-btr);
getinfofrom(aline);   //就是你要获取信息的函数;
}
void   getinfofrom(string   ss);
{
string   a,b,c...;
int   begain;
int   end;
int   flag=0;
for()
{
begain=ss.indexof( " <td> ",flag);//也要判断是否该break了;
end=ss.indexof( " </td> ",flag);
string   info=ss.substring(begain+3,end-begain-3);应该除去 <td> ;
}
}
大致就这个样子!
我水平不高,各位见笑了!
发表于:2007-08-08 15:35:195楼 得分:0
begain=ss.indexof( " <td> ",flag);//也要判断是否该break了;
end=ss.indexof( " </td> ",flag);
string   info=ss.substring(begain+3,end-begain-3);应该除去 <td> ;
}

可能 <td   。。。   > 里面还有内容哦。
发表于:2007-08-08 16:23:326楼 得分:0
string   strhtml   =   @ "
                                                        <table>
                                                        <tr>
                                                        <td> 1 </td>
                                                        <td> 2 </td>
                                                        <td> 3 </td>
                                                        </tr> <tr>
                                                        <td> 4 </td>
                                                        <td> 5 </td>
                                                        </tr>
                                                        </table> ";
                        list <string>   arrstr   =   new   list <string> ();
                        xmldocument   xmldoc   =   new   xmldocument();
                        xpathnavigator   xpath   =   xmldoc.createnavigator();
                        xpath.appendchild(strhtml);
                        xpathnodeiterator   xnode   =   xpath.select( "//td ");
                        while   (xnode.movenext()   ==   true)
                        {
                                arrstr.add(xnode.current.innerxml);
                        }
发表于:2007-08-08 16:26:117楼 得分:0
把table中的内容读取为一个标准的xml文档形式,然后就可以用xpath来操作了。

select( "//td ")这句可以选择出所有的td元素,不管在那一层。

最后用迭代器把td中的内容读出来就行了。

上面这个例子应该很清楚了。


快速检索

最新资讯
热门点击