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.