Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-02-2019
Muriel Muriel is offline
Miembro
 
Registrado: ago 2008
Posts: 19
Poder: 0
Muriel Va por buen camino
Smile Crear archivo xml con delphi

Hola compañeros de foro

Les comento que estoy tratando de generar un archivo XML con Delphi 7, ya lo logre hasta cierto punto, funciona bien, pero lo que no sé cómo hacer es esto <complemento xsi:nil="true"/> en Delphi para que el código XML quede así. Abajo des muestro mi código.

Espero que me puedan ayudar.

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComObj, xmldom, XMLIntf, msxmldom, XMLDoc;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
Var
   XML : IXMLDOCUMENT;
    Registro, Datos: IXMLNODE;
begin
    XML := NewXMLDocument;
    XML.Encoding := 'UTF-8';
    XML.Options := [doNodeAutoIndent];

    Registro := XML.AddChild('ClientesXML');
    Registro.Attributes['xsi:noNamespaceSchemaLocation']:= 'ClientesXML.xsd';
    Registro.Attributes['xmlns:xsi']:= 'w1.com/2019/XMLSchema-instance'; 

    Datos := Registro.AddChild('cliente');

    Datos.AddChild('nombre').Text := 'JUAN PERES FICTICIO';
    Datos.AddChild('edad').Text := '25';
    Datos.AddChild('numeroDocumenta').Text := '123456';
    Datos.AddChild('complemento'); //esto debe quedar asi 
                                              //lo que no se como hacer

    Datos := Registro.AddChild('detalles');

    Datos.AddChild('direccion').Text := 'Calle Valle Hermoso #123';
    Datos.AddChild('estadoCivil'); //esto debe quedar asi 
    Datos.AddChild('etcEtc').Text := '21312';

    XML.SaveToFile( ExtractFilePath( Application.ExeName ) + 'Cientes.xml' );
end;

 end.

Con esto el XML me queda asi

Código:
<?xml version="1.0" encoding="UTF-8"?>
<ClientesXML xmlns:xsi="estoLoBorre" xsi:noNamespaceSchemaLocation="ClientesXML.xsd"><cliente><nombre>JUAN PERES FICTICIO</nombre><edad>25</edad><numeroDocumenta>123456</numeroDocumenta><complemento/></cliente><detalles><direccion>Calle Valle Hermoso #123</direccion><estadoCivil/><etcEtc>21312</etcEtc></detalles></ClientesXML> yo nesesito que sea ai
<?xml version="1.0" encoding="UTF-8"?>
<ClientesXML xmlns:xsi="estoLoBorre" xsi:noNamespaceSchemaLocation="ClientesXML.xsd"><cliente><nombre>JUAN PERES FICTICIO</nombre><edad>25</edad><numeroDocumenta>123456</numeroDocumenta><complemento xsi:nil="true"/></cliente><detalles><direccion>Calle Valle Hermoso #123</direccion><estadoCivil xsi:nil="true"/><etcEtc>21312</etcEtc></detalles></ClientesXML>

Última edición por dec fecha: 23-02-2019 a las 18:40:17. Razón: Poner etiquetas DELPHI y CODE
Responder Con Cita
  #2  
Antiguo 25-02-2019
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No tengo Delphi a mano para probar pero viendo tu código parece que sólo necesitas asignar el resultado de Datos.AddChild('complemento') a otra variable Complemento de tipo IXMLNODE y sobre ella asignar el atributo:

Código Delphi [-]
Complemento.Attributes['xsi:nil'] := 'true';

// Saludos
Responder Con Cita
  #3  
Antiguo 26-02-2019
Muriel Muriel is offline
Miembro
 
Registrado: ago 2008
Posts: 19
Poder: 0
Muriel Va por buen camino
Gracias por respondes roman.
Pero antes de preguntar en el foro probé de esa manera y no se podía posterior a seguía luchando hasta que se me ocurrió de esta manera y me resulto bien.

AddChild('complemento').Attributes['xsi:nil']:= 'true';


Ahora mi mayor problema es que a ese archivo XML tengo que enviar por internet como intercambio de información, aun servidor o host no sé cómo es esto la cosa es que nunca ice cosas como eso.
Si alguien podría brindarme ayuda con eso seria maravilloso.
De ante mano les agradezco mucho.
Saludos.
Responder Con Cita
  #4  
Antiguo 26-02-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Crea un hilo con tu duda, ponle un título descriptivo y explica lo más claramente posible lo que necesitas y el problema que tienes.
Saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 crear y usar archivo de excel como db vroa74 Conexión con bases de datos 1 03-02-2012 18:00:20
como crear un archivo gpx con delphi 7 Luis Cuenca Varios 1 02-03-2011 10:59:48
Error al crear archivo de excel con delphi lduron Varios 2 26-08-2010 17:02:29
Crear archivo imborrable con Delphi d3an Lazarus, FreePascal, Kylix, etc. 1 04-02-2010 16:05:10


La franja horaria es GMT +2. Ahora son las 12:58:57.


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