Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-10-2012
nnebli nnebli is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 14
Poder: 0
nnebli Va por buen camino
Ante todo pido disculpas por no cumplir lo dicho, no ha sido mi intención. A veces hay más cosas que hacer de las que se pueden y no he podido subir la informaición que tegon yo sobre los XML.

Esto es con lo que yo estoy trabajando y me ha servido para crear XML más o menos complejos:

Nota: Te creas una ficha (un nuevo poyecto) y en ella pones varios botones para llamar a los procedimientos que se indican: Button2Click, Button3Click, etc. Copiando lo que ponen estos procedimientos te debería funcionar. Te pego el pequeño programilla que tengo de ejemplo, copia lo que necesites dentro de tu Forn: (si tienes cualquier duda, lo dices, intentaré ir viendo si hay dudas).

Para ir comprobando como funciona, ves en orden, ejecuta primero: Button2Click y luego el resto, ya que de lo contrario, lo mismo trata de leer un archivo XML que no existe y te dará error.

Saludos. Espero que te sea de utilidad. (Yo trabajo con Delphi 7)


Código Delphi [-]
unit UGeneraFicherosEnXML;
interface
uses
XMLDoc,XMLIntf,
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBClient, xmldom, msxmldom, ExtCtrls;
type
TGeneraFicherosEnXML = class(TForm)
Button2: TButton;
XMLDocument1: TXMLDocument;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Bevel1: TBevel;
Label2: TLabel;
Label1: TLabel;
Bevel2: TBevel;
Button1: TButton;
procedure TeclaPulsada(Sender: TObject; var Key: Char);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
GeneraFicherosEnXML: TGeneraFicherosEnXML;
 
implementation
{$R *.dfm}
 
procedure TGeneraFicherosEnXML.TeclaPulsada(Sender: TObject; var Key: Char);
begin
If Key = #27 Then Close;
end;
 
procedure TGeneraFicherosEnXML.Button2Click(Sender: TObject);
var
archivoXML: TXMLDocument;
Nodo,NDatosGenerales,NMensajeFacturacion,NCabecera,NDatosFinales : IXMLNode;
begin
archivoXML := TXMLDocument.Create(Application);
try
// Activamos el archivo XML
archivoXML.Active := True;
archivoXML.Version:='1.0';
archivoXML.Encoding:='UTF-8';
 
// Creamos el elemento principal: EsteEsElementoPrincipal //
NMensajeFacturacion := archivoXML.AddChild('EsteEsElementoPrincipal');
NMensajeFacturacion.Attributes['Firmar'] := 'NO';
 
// Ponemos el elemento que denominamos: Cabecera //
NCabecera := NMensajeFacturacion.AddChild( 'Cabecera' );
// ponemos elementos hijos del anterior que era 'Cabecera'
Nodo := NCabecera.AddChild( 'FechaSolicitud' );
Nodo.Text := '2012-09-08T11:57:31+01:00';
Nodo := NCabecera.AddChild( 'Version' );
Nodo.Text := '02';
 
// Ponemos el elemento: DatosGenerales - Dentro del elemento Cabecera
NDatosGenerales := NCabecera.AddChild( 'DatosGenerales' );
Nodo := NDatosGenerales.AddChild( 'Calle' );
Nodo.Text := 'Del río, 3';
Nodo := NDatosGenerales.AddChild( 'Municipio' );
Nodo.Text := 'Fuenlabrada';
 
// Ponemos el elemento: DatosFinales //
NDatosFinales := NMensajeFacturacion.AddChild( 'DatosFinales' );
// ponemos elementos hijos del anterior que era 'DatosFinales'
Nodo := NDatosFinales.AddChild( 'Enviado' );
Nodo.Text := '2012-09-08';
Nodo := NDatosFinales.AddChild( 'ConfirmacionRecepcion' );
Nodo.Text := 'SI';
 
// guardamos los datos del fichero con el nombre indicado
archivoXML.SaveToFile(ExtractFilePath(Application.ExeName) + 'Fichero en XML de prueba.xml');
 
finally
archivoXML.Free;
end;
 
end;
procedure TGeneraFicherosEnXML.Button3Click(Sender: TObject);
var
Cliente: IXMLNode;
begin
// LEYENDO EL VALOR DE LOS NODOS
XMLDocument1.LoadFromFile( ExtractFilePath( Application.ExeName ) + 'Fichero en XML de prueba.xml' );
XMLDocument1.Active := True;
Cliente := XMLDocument1.DocumentElement.ChildNodes[0];
ShowMessage( Cliente.ChildNodes['FechaSolicitud'].Text );
end;
procedure TGeneraFicherosEnXML.Button4Click(Sender: TObject);
var
Cliente: IXMLNode;
begin
// MODIFICANDO EL VALOR DE LOS NODOS
XMLDocument1.LoadFromFile( ExtractFilePath( Application.ExeName ) + 'Fichero en XML de prueba.xml' );
XMLDocument1.Active := True;
Cliente := XMLDocument1.DocumentElement.ChildNodes[0];
Cliente.ChildNodes['FechaSolicitud'].Text := 'Nueva fecha 19-10-2012';
XMLDocument1.SaveToFile( ExtractFilePath( Application.ExeName ) + 'Fichero en XML de prueba.xml' );
end;
 
procedure TGeneraFicherosEnXML.Button5Click(Sender: TObject);
var
Cliente, Nodo: IXMLNode;
begin
// AÑADIENDO NODOS
XMLDocument1.LoadFromFile( ExtractFilePath( Application.ExeName ) + 'Fichero en XML de prueba.xml' );
XMLDocument1.Active := True;
Cliente := XMLDocument1.DocumentElement.AddChild( 'EsteNodoHaSidoAnnadido' );
Nodo := Cliente.AddChild( 'NuevoNodoAnnadido' );
Nodo.Text := 'Datos annadidos 1';
Nodo := Cliente.AddChild( 'FechaAnnadido' );
Nodo.Text := '19-10-2012';
XMLDocument1.SaveToFile( ExtractFilePath( Application.ExeName ) + 'Fichero en XML de prueba.xml' );
 
end;
 
procedure TGeneraFicherosEnXML.Button6Click(Sender: TObject);
begin
// BORRANDO NODOS
XMLDocument1.LoadFromFile( ExtractFilePath( Application.ExeName ) + 'Fichero en XML de prueba.xml' );
XMLDocument1.Active := True;
XMLDocument1.DocumentElement.ChildNodes.Delete( 0 );
XMLDocument1.SaveToFile( ExtractFilePath( Application.ExeName ) + 'Fichero en XML de prueba.xml' );
 
end;
 
procedure TGeneraFicherosEnXML.Button1Click(Sender: TObject);
begin
Close;
end;
 
end.

Última edición por Casimiro Notevi fecha: 20-10-2012 a las 10:12:24.
Responder Con Cita
  #2  
Antiguo 20-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.075
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por nnebli Ver Mensaje
..
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración

Recuerda poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #3  
Antiguo 20-10-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
nnebli,

Gracias, muy interesante el ejemplo

Nelson.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Delphi 2007 en un procesar de 64 bits lucas05 Varios 3 16-05-2012 15:43:39
¿como Procesar listado en archivos INI? JXJ Varios 11 09-02-2011 04:00:38
¿Opendialog como Procesar archivos por lote? JXJ Varios 2 02-02-2011 15:23:12
Procesar archivos inmediatamente despues de su copiado o transferencia. fredycc OOP 3 17-02-2009 20:30:53
Procesar Archivos de Texto delimitados por TAB para luego import en Access dago_Ariza Conexión con bases de datos 1 13-05-2004 09:24:39


La franja horaria es GMT +2. Ahora son las 02:18:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi