Tema: TXMLDocument
Ver Mensaje Individual
  #17  
Antiguo 15-05-2007
Avatar de juangiron
juangiron juangiron is offline
Miembro
 
Registrado: ene 2007
Posts: 26
Reputación: 0
juangiron Va por buen camino
Unhappy Responder Esta

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; //end for
     //------------mapa----------------------
        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

Responder Con Cita