如何从如下HTML代码里取出数据???(200分)

  • 主题发起人 主题发起人 isafe
  • 开始时间 开始时间
I

isafe

Unregistered / Unconfirmed
GUEST, unregistred user!
如何从如下HTML代码里取出数据????
用delphi!如何取出这些数据
例如
<tr><td colspan = "2">
<table cellspacing = "0" cellpadding = "0"><tr>
<td background = "images/left.gif" nowrap width=20></td>
<td width = "100%">
<table width = "100%" border = "0" cellpadding = "3" cellspacing = "1" bgcolor = "#FFFFFF">
<tr><td align = "center"><strong><font color="#FF6600" size="+1">北京建元平化工材料有限公司</font></strong></td></tr>
<tr><td height=20></td></tr>
<tr><td bgcolor = "E8E6E6"><strong>名  称:</strong>要取的数据位置</td></tr>
<tr><td><strong>地  址:</strong>要取的数据位置</td></tr>
<tr><td bgcolor = "E8E6E6"><strong>邮  编:</strong>100000</td></tr>
<tr><td><strong>电  话:</strong>1000000</td></tr>
<tr><td bgcolor = "E8E6E6"><strong>注册日期:</strong>6/11/2001</td></tr>
<tr><td><strong>行政区号:</strong>110228</td></tr>
<tr><td bgcolor = "E8E6E6"><strong>注册资金:</strong>0 (万元)</td></tr>
<tr><td><strong>职工人数:</strong>5</td></tr>

<tr><td bgcolor = "E8E6E6"><strong>法  人:</strong>要取的数据位置</td></tr>
<tr><td><strong>经营范围:</strong>要取的数据位置</td></tr>
<tr><td bgcolor = "E8E6E6"><strong>经济行业:</strong><a href=cllistf1s1c100p1.html class=l3>要取的数据位置</a>
  <a href=http://www.b2b168.com/SearchBuy.asp?q=%C5%A9%D2%B5 class=l3>求购商机</a>
<a href=http://www.b2b168.com/SearchSupply.asp?q=%C5%A9%D2%B5 class=l3>供应商机</a>
<a href=http://www.b2b168.com/SearchCompany.asp?q=%C5%A9%D2%B5 class=l3>公司导航</a>
</td></tr>
</table>
 
Html肯定在文件中存放了,也即是要从文件中读取数据了,你先把所有内容都读到字符串中,再不断的判断</strong>及的位置</td>不就可以了?能用到的字符串函数有copy(),delete,pos()等。
 
请问能详细点吗?这样太抽象了
 
你先去看看http协议再做
 
用TWebBrowser,浏览该html文件,TWebBrowser有接口可以读取里面的内容。
不知道你要做什么用处。
 
解释字符串。
 
可以先调用TWebBrowser控件的控件方法,读出html代码,然后使用wanghongyong说的分析方法,判断<>和其他一些标志信息的位置,然后用字符串处理的方法读数据出来。
 
function DeCode(buf:string):string;
var
buffer1,buffer2,buffer3,buffer4,buffer5:string;
i,s:integer;
begin
//-------------------第一个数据----------------------
i:=pos('名  称:</strong>',buf);
buf:=Copy(buf,i,length(buf));
i:=pos('名  称:</strong>',buf);
s:=pos('</td></tr>',buf);
buffer1:=copy(buf,i+length('名  称:</strong>'),s-length('名  称:</strong>')-1);
//-------------------第二个数据----------------------
i:=pos('地  址:</strong>',buf);
buf:=Copy(buf,i,length(buf));
i:=pos('地  址:</strong>',buf);
s:=pos('</td></tr>',buf);
buffer2:=copy(buf,i+length('地  址:</strong>'),s-length('地  址:</strong>')-1);
//--------------------第三个数据---------------------
i:=pos('法  人:</strong>',buf);
buf:=Copy(buf,i,length(buf));
i:=pos('法  人:</strong>',buf);
s:=pos('</td></tr>',buf);
buffer3:=copy(buf,i+length('法  人:</strong>'),s-length('法  人:</strong>')-1);
//---------------------第四个数据--------------------
i:=pos('经营范围:</strong>',buf);
buf:=Copy(buf,i,length(buf));
i:=pos('经营范围:</strong>',buf);
s:=pos('</td></tr>',buf);
buffer4:=copy(buf,i+length('经营范围:</strong>'),s-length('经营范围:</strong>')-1);
//----------------------第五个数据-------------------
i:=pos('class=l3',buf);
buf:=Copy(buf,i,length(buf));
i:=pos('class=l3',buf);
s:=pos('</a>',buf);
buffer5:=copy(buf,i+1+length('class=l3'),s-length('class=l3')-2);
//----------------------显示数据-------------------
result:=buffer1+'--- 数据1取得'+ #13#10 +
buffer2+'--- 数据2取得'+ #13#10 +
buffer3+'--- 数据3取得'+ #13#10 +
buffer4+'--- 数据4取得'+ #13#10 +
buffer5+'--- 数据5取得';
end;
 
使用示例:
Memo2.text:=DeCode(Memo1.text);
 
做个记号
 
源代码及程序下载:<br>http://www.853.com.cn/download/HtmlConstrue.rar
 
楼主不来了啊
 

Similar threads

后退
顶部