Delphi - uso de xml

 
Vista:

uso de xml

Publicado por rolando_sd (3 intervenciones) el 18/01/2012 21:16:56
Hola a todos, tengo esta duda y necesito una ayuda al respecto:
Tengo una unit con su form y además de algunas otras instrucciones en mi unit, necesito enviar una línea de aviso a otro programa usando xml. Quiero saber si usando el botón "XMLDocument " de la botonera del IDE puedo llevarlo a la form y si puedo de esa manera pasar la línea que quiero pasar por xml, o si necesitaría hacer otra form que solo incluya el botón del "XMLDocument " y tratarlo independientemente. Alguien podrá darme un help?
Reciban mis agradecimientos anticipados
Salu2
Rolando
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

uso de xml

Publicado por E.T. (1244 intervenciones) el 20/01/2012 17:48:29
No comprendo del todo tu duda, aclaremos unas cosas.

1- Quieres pasar al otro programa un archivo xml
2- Quieres que tu programa lea un archivo xml y de éste quieres leer un nodo o valor en especifico y darselo al otro programa?

Cual de las anteriores es tu situacion?

El otro programa del que hablas, tu lo programaste o es de otra persona, porque si quieres comunicarte directamente con él no es tan sencillo, a menos que tu tengas el codigo fuente, o tambien es sencillo si el programa del que hablas tiene algun modulo de importacion/exportacion de datos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

uso de xml

Publicado por rolando_sd (3 intervenciones) el 23/01/2012 18:06:19
Tengo hecho un programa en Flash (ActionScript) y al mismo lo mando a ejecutar desde Delphi; y desde Delphi queria enviar unas líneas para comunicarle algo al programa de Flash, usé xml porque ambos pueden crear files en xml (con load o save despues para leerlos, etc), pero como desde Delphi nunca lo había hecho, tenía esa duda, pues no sabía si desde dentro de otro programa podía usando el botón xmlDocument podría crear las instrucciones o sería desde un file delphi aparte.
Hice una prueba, al dar click derecho dentro del editor de code me dió opcion de "load" o "save"; salvé en una carpeta lo hecho en xml y ahora debo completar lo que quiero que es ver si desde ActionScript puedo leer lo que me convenga de ese file xml y resolver mi problema.
O sea, tengo mi programa (fuente) hecho por mí en Flash (AS), y desde Delphi lo mando a ejecutar, pero además requiero que lea unas líneas que pude salvar en una pequeña carpeta.
Te agradezco mucho tu respuesta e interés en ayudarme, así como a los que visitaron mi tema (duda) y tal vez no me respondieron por no haber tenido esa experiencia. Gracias
Salu2
Rolando_sd
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

uso de xml

Publicado por E.T. (1244 intervenciones) el 23/01/2012 19:00:04
Bien, el uso, creacion y modificacion de un archivo xml desde delphi es bastante sencillo. Te dejo un pequeño ejemplo

Agregas a tu form un TXMLDocument, y lo nombras XMLDoc.

Si no se ponen solas, debes de tener estas units en el uses:
xmldom, XMLIntf, msxmldom, XMLDoc

hay que declarar una variable asi:

nodo:IXMLNode;

Para crear un archivo nuevo hacemos lo siguiente
1
2
3
4
5
6
7
8
9
10
11
12
XMLDoc.Active := True;
  XMLDoc.XML.Clear;
  XMLDoc.Version := '1.0';
  XMLDoc.Encoding := 'UTF-8';
  nodo := XMLDoc.AddChild('Encabezado');
  nodo.Attributes['Un_atributo']:= 'Dato';
  XMLDoc.DocumentElement := nodo;
  nodo := nodo.AddChild('Un_nodo');
  nodo.Attributes['Atributo_del_nodo_hijo'] := 'Nuevo valor';
  XMLDoc.SaveToFile('c:\mi_xml.xml' );
  XMLDoc.XML.Clear;
  XMLDoc.Active:=false;

Ese codigo te da como resultado el siguiente xml
1
2
3
4
<?xml version="1.0" encoding="UTF-8"?>
<Encabezado Un_atributo="Dato">
  <Un_nodo Atributo_del_nodo_hijo="Nuevo valor"/>
</Encabezado>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

uso de xml

Publicado por rolando_sd (3 intervenciones) el 23/01/2012 21:42:55
OK, muchísimas gracias por tu ayuda y por tu tiempo; voy a probar hoy mismo y seguro que ha de funcionar bien.
Te reitero las gracias
Salu2
Rolando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

uso de xml

Publicado por draker (1 intervención) el 12/12/2014 22:46:18
E.T. Me ayudo mucho el ejemplo, me di vueltas y vueltas tratando de crear otros nodos dentro del nodo ya creado, hasta que lo encontre, dejo mi ejemplo partiendo del ejemplo de E.T., grax.

procedure TForm1.Button1Click(Sender: TObject);
var
Nd1,Nd2,Nd3,Nd4: IXMLNode;
dXML: TXMLDocument;
begin
dXML:= TXMLDocument.Create(Self);
dXML.Active:=True;
dXML.XML.Clear;
dXML.Version := '1.0';
dXML.Encoding:= 'UTF-8';

Nd1 := dXML.AddChild('File'); Nd1.Attributes['Nombre']:= 'RED';

Nd2 := Nd1.AddChild('File'); Nd2.Attributes['Nombre'] := 'Navegador';

Nd3 := Nd2.AddChild('File'); Nd3.Attributes['Nombre'] := 'Firefox';
Nd4 := Nd3.AddChild('Ruta'); Nd4.Text:='al chaveeeerrr';

Nd3 := Nd2.AddChild('File'); Nd3.Attributes['Nombre'] := 'Chrome';
Nd3 := Nd2.AddChild('File'); Nd3.Attributes['Nombre'] := 'IE';

dXML.SaveToFile('c:\mi_xml.xml' );
dXML.Free;
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar