Leider steht mir nur Delphi 7 Pers. und Lazarus 1.0.8 zur verfügung. Deshalb versuche ich das ganze mit der
XML-Schnittstelle von Lazarus. Mit
XML hatte ich allerdings bis jetzt nix wirklich zu tun.
... Klappt hinten und vorne noch nicht.
Es gibt einige
XML-Libs die du statt TXMLDocument in Delphi 7 verwenden kannst. Z. B.
OmniXML,
XML Library
Allerdings könntest du für dein aktuelles Vorhaben das
XML auch einfach manuell erzeugen:
Delphi-Quellcode:
var
xml: TStrings;
response:
String;
TextToCheck:
String;
begin
TextToCheck := Edit1.Text;
// das Wort welches geprüft / korrigiert werden soll
xml := TStringList.Create;
try
xml.Add('
<?xml version="1.0" encoding="UTF-8"?>');
xml.Add('
<spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1">');
xml.Add('
<text>' + TextToCheck + '
</text>');
xml.Add('
</spellrequest>');
// idhttp erzeugen
// properties setzen...
response := Idhttp.Post(
URL,
xml);
// in Response steht nun die Antwort vom Server und kann ausgewertet werden.
finally
FreeAndNil(
xml);
end;
end;
So wirds übrigens auch im von sx2008 verlinkten Artikel gemacht:
http://stackoverflow.com/questions/1...ll-checker-api
Die Auswertung der
XML-Response kannst du evtl. mit Pos, PosEx, Copy oder RegEx machen. Ein richtiger
XML-Parser ist da aber in den meisten Fällen die bessere Lösung
EDIT: Ich habe gerade bemerkt, dass in oben verlinkten Thread die Response mittels der Regular Expression <(.|\n)*?> ausgewertet wird. Jetzt musst du nur noch eine RegEx-Klasse deiner Wahl darauf los lassen und brauchst dir keine Gedanken mehr um
XML-Parser machen (bis zum nächsten Kontakt mit
XML zumindest
)
Code:
retValue = Regex.Replace(data, @"<(.|\n)*?>", string.Empty).Split('\t')[0];