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 15-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
Procesar Archivos XML en Delphi 7

Hola:

¿Como puedo en Delphi 7 leer y generar archivos en formato XML?

Agradezco información y ejemplos sobre el componente XMLDocument de Delphi 7 o cualquier otro componente o clase XML que ustedes consideren importante.

Gracias de antemano

Saludos,

Nelson

Última edición por nlsgarcia fecha: 15-10-2012 a las 05:16:27.
Responder Con Cita
  #2  
Antiguo 15-10-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.267
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Busca también sobre la herramienta XMLMapper que viene con delphi. Si revisas esta entrada verás un ejemplo de utilización.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 15-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
Neftali,

Gracias por la información de XMLMapper

¿Tendras algún ejemplo del Componente XMLDocument de Delphi 7?

Nelson
Responder Con Cita
  #4  
Antiguo 16-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
Hola:

Este es un ejemplo autoexplicativo de como Leer y Generar archivos en formato XML con Delphi 7 por medio del componente XMLDocument creado de forma dinámica:

Código Delphi [-]
unit Unit26;

interface

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

type
  TForm26 = class(TForm)
    ListBox1: TListBox;
    GroupBox1: TGroupBox;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form26: TForm26;

implementation

{$R *.dfm}

// Crea un archivo XML : Document_File_XML
procedure TForm26.Button1Click(Sender: TObject);
var
   XML : TXMLDocument;
   ChildNode : IXMLNode;
   i, j : Integer;
begin
   XML := TXMLDocument.Create(nil);
   try
     XML.Active := true;
     // Crea el cuerpo princial del documento XML 
     XML.AddChild('Document_File_XML');

     for i := 1 to 3 do
     begin
        // Crea el Nodo Raiz o Registro
        ChildNode := XML.DocumentElement.AddChild('Root_Node-' + IntToStr(i));
        for j:=1 to 3 do
           // Crea el Nodo Hijo o Campo del Registro
           ChildNode.AddChild('Child_Node-' + IntToStr(j)).text := 'TextChild-' + IntToStr(i) + IntToStr(j);
     end;

     // Identa el Documento XML
     XML.XML.Text := xmlDoc.FormatXMLData(XML.XML.Text);

     XML.Active := true;
     
     // Salva el archivo creado 
     XML.SaveToFile('Document_File_XML.xml');

     XML.Active := False;

   finally
     XML := nil;
   end;
end;

// Lee un archivo XML : Document_File_XML
procedure TForm26.Button2Click(Sender: TObject);
var
   XML : TXMLDocument;
   ChildNode : IXMLNode;
   i,j : Integer;
begin
   ListBox1.Clear;
   XML := TXMLDocument.Create(Self);
   try
      XML.Active := True;
      
      // Carga el archivo creado 
      XML.LoadFromFile(ExtractFilePath(Application.ExeName) + 'Document_File_XML.xml');

      // Lee todos los Nodos o Registros
      for i:= 0 to XML.DocumentElement.ChildNodes.Count - 1 do
      begin
         // Lee un Nodo o Registro
         ChildNode := XML.DocumentElement.ChildNodes[i];
         for j:= 1 to 3 do
            // Lee cada Nodo Hijo o Campo del registro
            ListBox1.Items.Add(ChildNode.ChildNodes['Child_Node-' + IntToStr(j)].Text);
      end;
      XML.Active := False;
   finally
      XML := nil;
   end;
end;

end.


Código:
// Archivo Document_File_XML Creado y Leído por las rutinas anteriores
<Document_File_XML>
    <Root_Node-1>
        <Child_Node-1>TextChild-11</Child_Node-1>
        <Child_Node-2>TextChild-12</Child_Node-2>
        <Child_Node-3>TextChild-13</Child_Node-3>
    </Root_Node-1>
    <Root_Node-2>
        <Child_Node-1>TextChild-21</Child_Node-1>
        <Child_Node-2>TextChild-22</Child_Node-2>
        <Child_Node-3>TextChild-23</Child_Node-3>
    </Root_Node-2>
    <Root_Node-3>
        <Child_Node-1>TextChild-31</Child_Node-1>
        <Child_Node-2>TextChild-32</Child_Node-2>
        <Child_Node-3>TextChild-33</Child_Node-3>
    </Root_Node-3>
</Document_File_XML>
Se agradece cualquier información adicional sobre el Componente XMLDocument

Espero sea de utilidad este sencillo ejemplo genérico el cual puede ser adaptado a situaciones particulares

Nelson

Última edición por nlsgarcia fecha: 16-10-2012 a las 07:07:43.
Responder Con Cita
  #5  
Antiguo 16-10-2012
nnebli nnebli is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 14
Poder: 0
nnebli Va por buen camino
Voy a buscar lo que tengo sobre los XML y lo subo.

Intentaré recopilar lo que tengo mañana.

Saludos.
Responder Con Cita
  #6  
Antiguo 18-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
Hola:

En este link : http://delphi.about.com/od/interneti...rss_read_3.htm hay un ejemplo completo y descargable de como leer una pagina web en formato XML (RSS Feeds) con la clase TXMLDocument el cual es aplicable a cualquier otro archivo XML.

Usa otros metodos de lectura del archivo XML de los previamente comentados que son muy interesantes y autoexplicativos

Anexo parte del ejemplo de la pagina citada en el link:
Código Delphi [-]
var
    StartItemNode : IXMLNode;
    ANode : IXMLNode;
    STitle, sDesc, sLink : WideString;
 begin
 ...
   //points to local XML file in "original" code
   XMLDoc.FileName := 'http://0.tqn.com/6/g/delphi/b/index.xml';
   XMLDoc.Active:=True;
 
   StartItemNode := XMLDoc.DocumentElement.ChildNodes.First.ChildNodes.FindNode('item') ;
 
   ANode := StartItemNode;
   repeat
     STitle := ANode.ChildNodes['title'].Text;
     sLink := ANode.ChildNodes['link'].Text;
     sDesc := ANode.ChildNodes['description'].Text;
 
     //add to list view
     with LV.Items.Add do
     begin
       Caption := STitle;
       SubItems.Add(sLink) ;
       SubItems.Add(sDesc)
     end;
 
     ANode := ANode.NextSibling;
   until ANode = nil;
Espero sea útil

Nelson.
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 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 20:57:52.


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