Nochmal von vorne. Ich sende einen Befehl zum Lieferanten und bekomme folgendes zurück:
<item>
<number>123456789</number>
<unitprice>0,00</unitprice>
<description1>Testartikel</description1>
<description2>und so weiter...</description2>
<infourl>
http://testpfad.de/test.HTM
</infourl>
<pictureurl>
http://testpfad.de/test.JPG
</pictureurl>
</item>
Ich entnehme die Daten aus den Knoten und speichere Sie in die Datenbank. Wie Ihr seht gibt es ein <infourl>.
Ich nehme den Pfad
http://testpfad.de/test.HTM und streame mir den Inhalt.
Delphi-Quellcode:
...
if n = 'infourl' then
begin
PostDataStream := TStringStream.Create('');
ParamData := TStringStream.Create('');
ParamData.WriteString('');
ArtikelAdsTable.FieldByName('Infourl').AsString := s;
HtmlCodeIdHTTP.Post(s, ParamData, PostDataStream);
ArtikelAdsTable.FieldByName('Infotextalles').AsString := PostDataStream.DataString;
BodyJvRichEdit.Clear;
BodyJvRichEdit.Text := PostDataStream.DataString;
if Pos('<BODY>', BodyJvRichEdit.text) <> 0 then
begin
Start := Pos('<BODY>', BodyJvRichEdit.text)+7;
Ende := Pos('</BODY>', BodyJvRichEdit.text);
Body := Ende - Start;
bodytext := copy(BodyJvRichEdit.text, Pos('<BODY>', BodyJvRichEdit.Text)+6, Body+1);
ArtikelAdsTable.FieldByName('Infotextbody').AsString := bodytext;
end;
if Pos('<body>', BodyJvRichEdit.text) <> 0 then
begin
Start := Pos('<body>', BodyJvRichEdit.text)+7;
Ende := Pos('</body>', BodyJvRichEdit.text);
Body := Ende - Start;
bodytext := copy(BodyJvRichEdit.text, Pos('<body>', BodyJvRichEdit.text)+6, Body+1);
ArtikelAdsTable.FieldByName('Infotextbody').AsString := bodytext;
end;
end
...
Ist es nun verständlicher!?
P.S: Ich weiß man kann es sauberer lösen. Ich bin auch kein Crack, aber es erfüllt "eigentlich" seinen Zweck!