Sample code for 30+ languages & platforms
Delphi DLL

Load XML Object from HTTP Response Body

Demonstrates how to load the HTTP response body directly into an XML object.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, Xml, HttpResponse;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
http: HCkHttp;
resp: HCkHttpResponse;
xml: HCkXml;

begin
success := False;

http := CkHttp_Create();

resp := CkHttpResponse_Create();
success := CkHttp_HttpStr(http,'GET','https://www.chilkatsoft.com/exampledata/inventory.xml','','','',resp);
if (success = False) then
  begin
    Memo1.Lines.Add(CkHttp__lastErrorText(http));
    Exit;
  end;

xml := CkXml_Create();

// If we wish to transfer (instead of copy) the XML from the HttpResponse to the Xml, then add the keyword "TakeResponseBody" to UncommonOptions
// This could save memory for extremely large XML responses.
CkHttpResponse_putUncommonOptions(resp,'TakeResponseBody');

CkHttpResponse_GetBodyXml(resp,xml);

Memo1.Lines.Add(CkXml__getXml(xml));

// Note: If UncommonOptions contained "TakeResponseBody", then the response BodyStr will now be empty:
Memo1.Lines.Add('----');
Memo1.Lines.Add(CkHttpResponse__bodyStr(resp));

CkHttp_Dispose(http);
CkHttpResponse_Dispose(resp);
CkXml_Dispose(xml);

end;