XML Delphi Al Limite
XML Delphi Al Limite
Por último se describe el tipo de dato que van a contener los nodos finales. El
atributo #PCDATAsignifica que puede contener cualquier valor.
Con este archivo al lado de nuestros documentos XML podemos hacer doble clic sobre
los mismos para que se vean en cualquier navegador.
Para acceder a cada nodo se utiliza la interfaz IXMLNode, comenzando por el nodo
raiz a través de la propiedad DocumentElement del componente XMLDocument.
Vamos a ver un ejemplo de cómo leer el saldo pentiende (saldopte) del primer
cliente y mostrarlo por pantalla:
var
Cliente: IXMLNode;
begin
XML.LoadFromFile( ExtractFilePath( Application.ExeName ) +
'clientes.xml' );
XML.Active := True;
Cliente := XML.DocumentElement.ChildNodes[0];
ShowMessage( Cliente.ChildNodes['saldopte'].Text );
end;
var
Cliente: IXMLNode;
begin
XML.LoadFromFile( ExtractFilePath( Application.ExeName ) +
'clientes.xml' );
XML.Active := True;
Cliente := XML.DocumentElement.ChildNodes[1];
Cliente.ChildNodes['nombre'].Text := 'MARIA PEREZ ROJO';
XML.SaveToFile( ExtractFilePath( Application.ExeName ) +
'clientes2.xml' );
end;
Una vez modificado el nombre grabo todo el documento XML en otro archivo
llamado clientes2.xml (aunque podía haber utilizado el mismo).
AÑADIENDO Y BORRANDO NODOS
var
Cliente, Nodo: IXMLNode;
begin
XML.LoadFromFile( ExtractFilePath( Application.ExeName ) +
'clientes.xml' );
XML.Active := True;
Cliente := XML.DocumentElement.AddChild( 'Cliente' );
Cliente.Attributes['id'] := '3';
Nodo := Cliente.AddChild( 'nombre' );
Nodo.Text := 'PABLO PALAZON ALCOLEA';
Nodo := Cliente.AddChild( 'nif' );
Nodo.Text := '79469163E';
Nodo := Cliente.AddChild( 'saldopte' );
Nodo.Text := '0.00';
Nodo := Cliente.AddChild( 'diaspago' );
Nodo.Text := '15';
XML.SaveToFile( ExtractFilePath( Application.ExeName ) +
'clientes3.xml' );
end;
En esta ocasión utilizamos dos nodos: Clientepara crear el nodo padre y Nodo para
crear cada uno de los nodos hijos.
Por último podemos eliminar elementos utilizando el método Delete cuyo parámetro
es el número de nodo hijo que deseamos eliminar (siendo cero el primer elemento).
Para eliminar el primer cliente de la lista hacemos los siguiente:
begin
XML.LoadFromFile( ExtractFilePath( Application.ExeName ) +
'clientes.xml' );
XML.Active := True;
XML.DocumentElement.ChildNodes.Delete( 0 );
XML.SaveToFile( ExtractFilePath( Application.ExeName ) +
'clientes4.xml' );
end;
Este código coge la lista de los dos clientes iniciales, elimina el primero y guarda el
documento como clientes4.xml. De esta manera podemos crear una pequeña base
de datos utilizando documentos XML.
En el próximo artículo veremos como simplificar aún más el manejo de archivos XML
utilizando el asistente XML Data Binding.
Administrador en 11:33
3 comentarios:
1.
David González Acén12:40 p. m.
Gracias
Responder
2.
Mcorp5:12 p. m.
3.
Angel Amores Bustos9:11 p. m.
‹
›
Página principal
Administrador
Ver todo mi perfil
Con la tecnología de Blogger.