Листинг 1
//———————————————————————————
// Процедура GetChilds – перебирает все дочерние ветви
//———————————————————————————
procedure TForm1.GetChilds(N: IXMLDOMNode; Level : Byte);
var
ElemList : IXMLDOMNodeList;
I : Integer;
Node : XMLDOMNode;
S : String;
begin
S := ‘’;
ElemList := N.ChildNodes;
// Добавить смещение для уровня > 0
For I := 0 to Level-1 Do S := S + #9;
// Перебрать все дочерние ветви
For I := 0 to ElemList.Length-1 do
Begin
Node := ElemList.Item[I];
Case Node.NodeType of
// Показать имя элемента для
// ветви-элемента
NODE_ELEMENT :
Memo1.Lines.Add(S + Node.NodeName);
// Показать текст для текстовой
// ветви
NODE_TEXT :
Memo1.Lines.Add(S + Node.Text);
End;
If Node.HasChildNodes Then GetChilds(Node,Level+1);
End;
end;