Bueno esta es la estructura del archivo xml q estoy queriendo leer:
Código:
<?xml version="1.0"?>
<Agenda>
<Dia>Lunes
<Horario>Mañana</Horario>
<Horario>Tarde
<Actividad>ir a un lugar</Actividad>
<Actividad>ir a un lugar</Actividad>
</Horario>
<Horario>Noche</Horario>
</Dia>
<Dia>Martes
<Horario>Mañana</Horario>
<Horario>Tarde</Horario>
<Horario>Noche</Horario>
</Dia>
<Dia>Miercoles
<Horario>Mañana
<Actividad>ir a un lugar</Actividad>
<Actividad>ir a un lugar</Actividad>
</Horario>
<Horario>Tarde</Horario>
<Horario>Noche
<Actividad>ir a un lugar</Actividad>
<Actividad>ir a un lugar</Actividad>
</Horario>
</Dia>
<Dia>Jueves
<Horario>Mañana</Horario>
<Horario>Tarde</Horario>
<Horario>Noche</Horario>
</Dia>
<Dia>Viernes
<Horario>Mañana</Horario>
<Horario>Tarde
<Actividad>ir a un lugar</Actividad>
<Actividad>ir a un lugar</Actividad>
</Horario>
<Horario>Noche</Horario>
</Dia>
<Dia>Sabado
<Horario>Mañana</Horario>
<Horario>Tarde</Horario>
<Horario>Noche</Horario>
</Dia>
<Dia>Domingo
<Horario>Mañana</Horario>
<Horario>Tarde</Horario>
<Horario>Noche</Horario>
</Dia>
</Agenda>
En cada horario pueden haber diferente cantidad de actividades guardadas...
Y este es el codigo q esoty implementando para ello... pero me aparece un error... al parecer es donde lo indico, pero no se porq...
Código Delphi
[-]
var
h,d,j,i : integer;
nhorario: ttreenode;
ndia, nhor, nsec: IXMLNode;
const
dias : array [0..6] of string = ('Lunes','Martes','Miercoles','Jueves','Viernes','Sabado','Domingo');
hora : array [0..2] of string = ('Mañana','Tarde','Noche');
xml1.loadfromfile('planes\' + enom.Text +'.lp');
xml1.Active := true;
d:= 0;
h:= 0;
repeat ndia := xml1.DocumentElement.ChildNodes.First.ChildNodes.FindNode('Dia');
nhor := ndia.ChildNodes.findnode('Horario'); repeat for i := 0 to actividad.Items.Count - 1 do
begin
if uppercase(trim(actividad.Items[i].Text)) = uppercase(trim(dias[d])) then
begin
for j := 0 to actividad.items[i].Count - 1 do
begin
if uppercase(trim(actividad.Items[i + j].Text)) = uppercase(trim(hora[h])) then
begin
nhorario := actividad.Items[i + j];
actividad.Items.AddChild(nhorario,nhor.ChildNodes['Actividad'].Text);
end;
end;
end;
end;
h := h+1;
nhor := nhor.NextSibling; until nhor = nil;
d := d+1; ndia := ndia.NextSibling; until ndia = nil; xml1.Active := false;
end;
Lo que intento hacer es cargar en un treeview q se llama "actividad" Tengo q aclarar q ese treeview ya tiene cargado los dias y los horarios... solo resta cargarle las actividades en sus respectivos horarios...
Espero q alguien pueda ayudarme... muchisimas gracias!
{Saludos}