Delphi 2010 y XML (2)

Siguiendo con el tópico de XML veamos ahora algo de código. Como ejemplo tomaremos la estructuta XML del post anterior y lo crearemos por código.

A la hora de trabajar con documentos XML lo podemos hacer creando una instancia de la clase TXMLDocument o usando el control del mismo nombre que encontraremnos en la paleta de controles bajo Internet.

Un par de cosas antes de continuar, un nodo como por ejemplo <libro> se denomnina elemento, en XML todos lo que se crean son nodos, elemento por ejemplo es un tipo especial de nodo, un atributo también es un tipo de nodo, el contenido de un elemento tambien es un tipo de nodo.

Creemos una ventana como la que sigue para hacer nuestras pruebas:

Elijamos el  control creado y en la venatana de Propiedades podemos ver una llamada DOMVendor, en ella podremos elejir entre las disponibles, actualmente MSXML, Xerces y ADOM. Cual elejimos? depende de nuestras preferencia y el uso que le demos, si no sabes cual, apunta a lo seguro (¿?) y elije MSXML de Microsoft. Para fnes de este ejecicio expandimos la propiedad Options y ponemos a True doNodeAutoIndent, esto permitira que el texto que obtengamos aparezca indentado para ver mejor la jerarquía (esto es opcional, el formato XML no rquiere indentación e incluso todo el texto puede ir en una sola línea).

Ahora en el evento OnClick de nuestro botón agregaremos algo de código para crear la estructura planteada:

procedure TForm1.Button1Click(Sender: TObject);
var
DatoNode,
LibroNode,
RootNode: IXMLNode;
XMLString: string;
begin
XMLDocument1.Active := True;                // Debemos activar el Documento para poder trabajar
RootNode := XMLDocument1.AddChild('libros');  // Creamos el nodo raíz
LibroNode := RootNode.AddChild('libro');      // Agregamos un elemento debajo de raíz
LibroNode.Attributes['tipo'] := 'novela';     // Le agregamos un atributo a nuestro elemento
DatoNode := LibroNode.AddChild('nombre');     // Agregamos 2 nodos debajo del elemento Libro
DatoNode.Text := 'La Casa Verde';
DatoNode := LibroNode.AddChild('autor');
DatoNode.Text := 'Vargas Llosa';

XMLDocument1.SaveToXML(XMLString);            // Grabamos el documento en texto
Memo1.Text := XMLString;                      // y lo mostramos
end;

Ejecutemos el programa y obtendremos el siguiente resultado al hacer click en el boton.

En la línea 17 he usado XMLDocument1.SaveToXML(var XML: String) que toma la estructura creado y la convierte en texto. Del mismo modo pude haber usado SavetoFile() que grabariá el contenido en un archivo.

Lo mismo podemos hacer si usamos LoadFromXML() ó LoadFromFile().

Bueno eso es todo por ahora. En el siguiente post veremos como recorrer el Documento XML y obtener valores.

 

 

 

 

Anuncios

Publicado por

danielluyo

Programador con experiencia en Delphi, Java, C/C++, VB, SQL, PHP.

Un comentario en “Delphi 2010 y XML (2)”

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s