Hier noch eine kleine Gehhilfe. Du kannst sie anstelle von ShowStructure() verwenden. Sie zeigt den Umgang mit deinem Dokument. Die Existenz von "ordner/name" und "datei" auf der selben Ebene ist kein gutes Design, aber wahrscheinlich möchte dich jemand mit diesem Dokument ärgern.
Delphi-Quellcode:
procedure TDemoForm.ShowFolder(e: IXMLDOMElement; nParent: TTreeNode);
var
i: Integer;
nl: IXMLDOMNodeList;
n: TTreeNode;
eChild, eName: IXMLDOMElement;
s: String;
begin
nl := e.selectNodes('ordner|datei');
for i := 0 to Pred(nl.length) do
begin
eChild := nl.item[i] as IXMLDOMElement;
eName := eChild.selectSingleNode('name') as IXMLDOMElement;
if eChild.tagName = 'ordner' then
begin
s := AnsiUppercase(eName.text);
n := TreeNodes.AddChildObject(nParent, s, TReference.Create(eChild));
ShowFolder(eChild, n);
end else
begin
s := AnsiLowercase(eName.text);
TreeNodes.AddChildObject(nParent, s, TReference.Create(eChild));
end;
end;
end;
marabu