Thema: Delphi WebDAV Login Beispiel

Einzelnen Beitrag anzeigen

WiPhi

Registriert seit: 19. Feb 2015
90 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: WebDAV Login Beispiel

  Alt 16. Aug 2020, 20:12
Das parsen musst du von Hand übernehmen, kannst dir aber den Xml Databinding-Assi zu Hilfe nehmen:

Du kannst das XML Schema von https://github.com/lookfirst/sardine...ter/webdav.xsd über den Databinding Assistenten von Delphi einbinden.

Du liest die Response einfach ein und gehst die einzelnen Elemente durch.

Grober Ablauf:
Delphi-Quellcode:
var
  Status: IXMLMultistatus; // generiert durch den Xml Databinding Assi in Delphi
  WebDAVXml: TXmlDocument; // Das Xml enthält die Serverantwort mit dem Listing im Rohformat
  Response: TMemoryStream; // Alles im Arbeitsspeicher abarbeiten
begin
// Per PropFind das aktuelle Listing abrufen und in einen Stream (hier Response) laden
WebDAVClient.DAVPropFind(URL, nil, Response, '1', 1, 1); // Die '1' lädt das aktuelle Verzeichnis, die Tiefe kann hier bestimmt werden
// Den Stream in ein TXmlDocument (hier WebDAVXml) laden
WebDAVXml.LoadFromStream(Response);

// Wenn du das Databinding nutzt kannst du dich mit Getmultistatus(...) durch die Liste arbeiten
// .. anonsten jeden Tag per Hand auswerten...
Status := Getmultistatus(WebDAVXml)
// anschließend durch die Responses iterieren...
for iResp := 0 to Status.Response.Count - 1 do
begin
  ResponseItem := Status.Response[iResp];
  // Listing aufbauen und weiterverarbeiten (z.B. eine StringList oder besser eine TList<> mit eigenem Typ mit mehreren Informationen (Dateigröße, Datum, usw.)) ...
end;
Hoffe das hilft dir weiter
Wer sucht, der findet. Wer länger sucht, findet mehr.
  Mit Zitat antworten Zitat