BUENO AL FINAL DEL DIA TOME LA DESICION DE IMPLEMETARLO ASI
Código Delphi
[-]
procedure TFrmPrincipal.ToolButton4Click(Sender: TObject);
var
FDocXml: TXMLDocument;
nodoClave, nodoSeccion, nodoObjeto, nodoRegla: IXMLNode;
i,j,k:Integer;
escena:String;
begin
SaveDialog1.Filter:='Archivo XML(*.xml)|*.XML';
if SaveDialog1.Execute then
begin
escena:='';
FDocXml := TXMLDocument.Create(Self);
FDocXml.Options := [doNodeAutoIndent];
FDocXml.Active:=true;
FDocXml.Version := '1.0';
nodoSeccion := FDocXml.AddChild('MODELO');
for i := 0 to High(ArrayObjetos) do
begin
nodoClave := nodoSeccion.AddChild('OBJETO');
nodoObjeto := nodoClave.AddChild('Nombre');nodoObjeto.Text := ArrayObjetos[i].getNombreObj;
nodoObjeto := nodoClave.AddChild('Tipo');nodoObjeto.Text :=IntToStr(ArrayObjetos[i].getTipoObj);
nodoObjeto := nodoClave.AddChild('Color');nodoObjeto.Text :=ColorToString(ArrayObjetos[i].getColor);
nodoObjeto := nodoClave.AddChild('Movimiento');
nodoObjeto.Attributes['Activa']:= BoolToStr(ArrayObjetos[i].getMovimiento);
nodoObjeto.Attributes['UP']:= BoolToStr(ArrayObjetos[i].getUP);
nodoObjeto.Attributes['DOWN']:= BoolToStr(ArrayObjetos[i].getDOWN);
nodoObjeto.Attributes['LEFT']:= BoolToStr(ArrayObjetos[i].getLEFT);
nodoObjeto.Attributes['RIGT']:= BoolToStr(ArrayObjetos[i].getRIGHT);
nodoObjeto := nodoClave.AddChild('Expansion');
nodoObjeto.Attributes['Activa']:= BoolToStr(ArrayObjetos[i].getMovimiento);
nodoObjeto.Attributes['UP']:= BoolToStr(ArrayObjetos[i].getEUP);
nodoObjeto.Attributes['DOWN']:= BoolToStr(ArrayObjetos[i].getEDOWN);
nodoObjeto.Attributes['LEFT']:= BoolToStr(ArrayObjetos[i].getELEFT);
nodoObjeto.Attributes['RIGT']:= BoolToStr(ArrayObjetos[i].getERIGHT);
nodoObjeto := nodoClave.AddChild('Decadencia');
nodoObjeto.Attributes['Activa']:= BoolToStr(ArrayObjetos[i].getDecadencia);
nodoObjeto := nodoClave.AddChild('Eliminacion');
nodoObjeto.Attributes['Activa']:= BoolToStr(ArrayObjetos[i].getEliminacion);
nodoObjeto.Attributes['ObjAElimin']:= IntToStr(ArrayObjetos[i].getObjAElimin);
nodoObjeto := nodoClave.AddChild('Neutralizacion');
nodoObjeto.Attributes['Activa']:= BoolToStr(ArrayObjetos[i].getNeutralizacion);
nodoObjeto.Attributes['ObjANeutra']:= IntToStr(ArrayObjetos[i].getObjANeutra);
nodoObjeto := nodoClave.AddChild('Reproduccion');
nodoObjeto.Attributes['Activa']:= BoolToStr(ArrayObjetos[i].getReproduccion);
nodoObjeto := nodoClave.AddChild('Retraccion');
nodoObjeto.Attributes['Activa']:= BoolToStr(ArrayObjetos[i].getRetraccion);
nodoObjeto := nodoClave.AddChild('Transformacion');
nodoObjeto.Attributes['Activa']:= BoolToStr(ArrayObjetos[i].getTransformacion);
nodoObjeto.Attributes['NewObjtransf']:= IntToStr(ArrayObjetos[i].getNewObjtransf);
end; for j := 0 to ColumnaEsc - 1 do
for k := 0 to FilaEsc - 1 do
escena:=escena+IntToStr(ArrayEsc[j,k].getTipoObj)+'|';
nodoClave := nodoSeccion.AddChild('ESCENARIO');
nodoClave.Attributes['NombreEsc']:=NombreEsc;
nodoClave.Attributes['ColorEsc']:=ColorToString(ColorEsc);
nodoClave.Attributes['ColumnaEsc']:=IntToStr(ColumnaEsc);
nodoClave.Attributes['FilaEsc']:=IntToStr(FilaEsc);
nodoObjeto := nodoClave.AddChild('Mapa');nodoObjeto.Text := escena;
FDocXml.SaveToFile(SaveDialog1.FileName+'.xml');;
end;
end;
LO QUE ME GENERA ESTO
Código:
<?xml version="1.0" ?>
- <MODELO>
- <OBJETO>
<Nombre>Objeto1</Nombre>
<Tipo>0</Tipo>
<Color>clBlue</Color>
<Movimiento Activa="-1" UP="-1" DOWN="-1" LEFT="-1" RIGT="-1" />
<Expansion Activa="-1" UP="0" DOWN="0" LEFT="0" RIGT="0" />
<Decadencia Activa="0" />
<Eliminacion Activa="0" ObjAElimin="0" />
<Neutralizacion Activa="0" ObjANeutra="0" />
<Reproduccion Activa="0" />
<Retraccion Activa="0" />
<Transformacion Activa="0" NewObjtransf="0" />
</OBJETO>
- <OBJETO>
<Nombre>Objeto1</Nombre>
<Tipo>1</Tipo>
<Color>clYellow</Color>
<Movimiento Activa="0" UP="0" DOWN="0" LEFT="0" RIGT="0" />
<Expansion Activa="0" UP="-1" DOWN="-1" LEFT="-1" RIGT="-1" />
<Decadencia Activa="0" />
<Eliminacion Activa="0" ObjAElimin="0" />
<Neutralizacion Activa="0" ObjANeutra="0" />
<Reproduccion Activa="0" />
<Retraccion Activa="0" />
<Transformacion Activa="0" NewObjtransf="0" />
</OBJETO>
- <ESCENARIO NombreEsc="Prueba" ColorEsc="clMoneyGreen" ColumnaEsc="10" FilaEsc="10">
<Mapa>1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|0|1|1|1|1|1|1|1|1|0|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|</Mapa>
</ESCENARIO>
</MODELO>
AHORA COMO HAGO PARA POR EJEMPLO AL NOMBRE DEL SEGUNDO OBJETO??
AYUDDAAAA
MEJOR DICHO COMO HAGO PARA ACCEDER A CADA UNO DE LOS DATOS