Hola,
El método que describe
Caro puede ser más que suficiente y es muy sencillo. Aún así, dado que un archivo XML también es jerárquico, pudiera ser que te convenga más recorrer el árbol recursivamente:
1. Lees los nodos de primer nivel (días)
2. Por cada día, lees sus subnodos (turnos)
3. Por cada turno, lees sus subnodos (actividades)
Más o menos sería así:
Código Delphi
[-]
var
NodoDia: TTreeNode;
begin
NodoDia := TreeView1.Items.GetFirstNode();
while Assigned(NodoDia) do
begin
LeerTurnos(NodoDia);
NodoDia := NodoDia.GetNextSibling();
end;
end;
El método LeerTurnos trabaja con los subnodos del nodo (dia) que se le pase:
Código Delphi
[-]
procedure LeerTurnos(NodoDia: TTreeNode);
var
NodoTurno: TTreeNode;
begin
NodoTurno := NodoDia.GetFirstChild();
while Assigned(NodoTurno) do
begin
LeerActividades(NodoTurno);
NodoTurno:= NodoTurno.GetNextSibling();
end;
end;
Finalmente, el método LeerActividades, trabaja con los subnodos del nodo (turno) que se le pase:
Código Delphi
[-]
procedure LeerActividades(NodoTurno: TTreeNode);
var
NodoActividad: TTreeNode;
begin
NodoActividad := NodoTurno.GetFirstChild();
while Assigned(NodoActividad) do
begin
NodoActividad:= NodoActividad.GetNextSibling();
end;
end;
// Saludos