[英]Retrieving some values from html document delphi
我想問一個人如何從網絡文件夾上的HTML文檔中提取一些信息。 並將它們保存到備忘錄或文本文件中。
HTML文件包含以下信息:
<div>
<a name="N02CB3FB0N02CB7834"></a>
<table width="600" class="data">
<tr>
<td width="200" valign="middle" style="background-color:white;" rowspan="11"><a href="file://///SRVTOPS/TRUMPF_PDM2/DATA_LASER/Pellenc/Cierny/04_0/108536B.GEO"><img width="200" alt="108536B.GEO" src="file://///SRVTOPS/TRUMPF_PDM2/DATA_ORDER/JOBM3046/JOBM3046_1_108536B_1.BMP"></a></td><td valign="bottom">C. dílu:
</td><td valign="bottom">1
</td>
</tr>
<tr>
<td valign="bottom">Dil:
</td><td valign="bottom">108536B
</td>
</tr>
<tr>
<td valign="bottom">Název výkresu:
</td><td valign="bottom">PORTEUR
</td>
</tr>
<tr>
<td valign="bottom">Císlo zakázky:
</td><td valign="bottom">*</td>
</tr>
<tr>
<td valign="bottom">zakaznik</td><td valign="bottom">Pellenc</td>
</tr>
<tr>
<td valign="bottom">ks:
</td><td valign="bottom">9</td>
</tr>
<tr>
<td valign="bottom">Rozmer:
</td><td valign="bottom">850.0 mm
x
31.2 mm</td>
</tr>
<tr>
<td valign="bottom">Plocha:
</td><td valign="bottom">26107.27 mm2</td>
</tr>
<tr>
<td valign="bottom">Hmotnost:
</td><td valign="bottom">0.820 kg
</td>
</tr>
<tr>
<td valign="bottom">Trvani:
</td><td valign="bottom">00:
00:
31</td>
</tr>
<tr>
<td valign="bottom">Soubor dilu:
</td><td valign="bottom"><a href="file://///SRVTOPS/TRUMPF_PDM2/DATA_LASER/Pellenc/Cierny/04_0/108536B.GEO">108536B.GEO</a></td>
</tr>
</table>
</div>
<div>
<a name="N02CB3FB0N02CB7FA8"></a>
<table width="600" class="data">
<tr>
<td width="200" valign="middle" style="background-color:white;" rowspan="11"><a href="file://///SRVTOPS/TRUMPF_PDM2/DATA_LASER/VYTSTUHA_8KS.GEO"><img width="200" alt="VYTSTUHA_8KS.GEO" src="file://///SRVTOPS/TRUMPF_PDM2/DATA_ORDER/JOBM3046/JOBM3046_1_VYTSTUHA_8KS_2.BMP"></a></td><td valign="bottom">C. dílu:
</td><td valign="bottom">2
</td>
</tr>
<tr>
<td valign="bottom">Dil:
</td><td valign="bottom">NOID_2
</td>
</tr>
<tr>
<td valign="bottom">Název výkresu:
</td><td valign="bottom">
</td>
</tr>
<tr>
<td valign="bottom">Císlo zakázky:
</td><td valign="bottom">*</td>
</tr>
<tr>
<td valign="bottom">zakaznik</td><td valign="bottom"></td>
</tr>
<tr>
<td valign="bottom">ks:
</td><td valign="bottom">8</td>
</tr>
<tr>
<td valign="bottom">Rozmer:
</td><td valign="bottom">140.0 mm
x
48.8 mm</td>
</tr>
<tr>
<td valign="bottom">Plocha:
</td><td valign="bottom">4271.95 mm2</td>
</tr>
<tr>
<td valign="bottom">Hmotnost:
</td><td valign="bottom">0.134 kg
</td>
</tr>
<tr>
<td valign="bottom">Trvani:
</td><td valign="bottom">00:
00:
07</td>
</tr>
<tr>
<td valign="bottom">Soubor dilu:
</td><td valign="bottom"><a href="file://///SRVTOPS/TRUMPF_PDM2/DATA_LASER/VYTSTUHA_8KS.GEO">VYTSTUHA_8KS.GEO</a></td>
</tr>
</table>
<hr>
</di>
所以為了求愛,我需要。 108536,VYTSTUHA_8KS
對於每個文件,我需要找到一個BMP文件並將其放在圖像上。
非常感謝
您好,對不起,是的,我知道如何讀取HTML文件,並將其放入便箋中,但是在我需要查找一些信息之后。 這是將HTML轉換為備忘錄的代碼:
begin
if OpenDialog1.Execute then
begin
sHTMLFile := OpenDialog1.FileName;
Strl := TStringList.Create;
try
Strl.LoadFromFile(sHTMLFile);
Idoc := CreateComObject(Class_HTMLDOcument) as IHTMLDocument2;
try
IDoc.designMode := 'on';
while IDoc.readyState <> 'complete' do
Application.ProcessMessages;
v := VarArrayCreate([0, 0], VarVariant);
v[0] := Strl.Text;
IDoc.Write(PSafeArray(System.TVarData(v).VArray));
IDoc.designMode := 'off';
while IDoc.readyState <> 'complete' do
Application.ProcessMessages;
Memo1.Lines.Text := IDoc.body.innerText;
finally
IDoc := nil;
end;
finally
Strl.Free;
end;
end;
end;
使用http://destructor.de中的 TXMLParser解析HTML文檔並提取您在掃描過程中所需的信息。
通過將html加載到字符串中並使用Pos查找所需的文本,我已經成功完成了很多次。
例如,要獲取Dil值,請在查找文本之前使用已知的“目標”調用函數,例如“ Dil:”。
<td valign="bottom">Dil:
</td><td valign="bottom">108536B
</td>
使用“ Dil:”作為ATag參數並使用HTML作為html來調用此函數。
function GetTagValue(HTML, ATag: String): String;
var P: Integer;
S: String;
begin
S := HTML;
P := Pos(ATag, S);
HTML := Copy(S, P, 99999);
P := Pos('bottom">', S);
HTML := Copy(S, P + 8, 99999);
P := Pos(' ', S);
Result := Copy(S, 1, P-1);
end;
我只是以此為例-您可能要先進行測試!!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.