Leitura de Arquivos XML em Delphi

Leitura de Arquivos XML em Delphi
Tag XML

Introdução

Nesse post iremos abordar sobre a leitura de Arquivos XML em Delphi, com exemplo prático e código fonte para download.

O XML (eXtensible Markup Language) é uma linguagem de marcação amplamente utilizada para armazenar e transportar dados de maneira estruturada e independente de plataforma. No desenvolvimento de software, especialmente em Delphi, a manipulação de arquivos XML é uma habilidade essencial. Este artigo irá abordar como carregar e ler arquivos XML em Delphi, utilizando a classe TXMLDocument para manipulação de XML.

O que é XML?

XML é uma linguagem de marcação que define regras para a codificação de documentos em um formato que tanto humanos quanto máquinas podem ler. Ao contrário do HTML, que se preocupa com a apresentação dos dados, o XML foca na estruturação e transporte dos dados. Essa flexibilidade faz com que o XML seja amplamente utilizado em diversas aplicações, desde configurações de software até troca de dados entre sistemas.

Carregando e Lendo Arquivos XML em Delphi

Em Delphi, trabalhar com XML é bastante direto graças à classe TXMLDocument, que faz parte da biblioteca XMLDoc. A classe TXMLDocument fornece métodos e propriedades para carregar, ler, modificar e salvar arquivos XML. Vamos explorar como utilizar essa classe para manipular um arquivo XML.

Passo 1: Preparando o Ambiente

Antes de começar a trabalhar com XML em Delphi, você precisa garantir que a unidade XMLDoc esteja incluída na seção uses do seu projeto:

uses
  XMLDoc, XMLIntf;
Passo 2: Interface do projeto

Para a interface iremos utilizar um botão TButton para chamar o método de LerDadosXML e uma caixa de texto TMemo para exibir os dados lidos.

Passo 3: Lendo os Dados do XML

Após carregar o arquivo XML, você pode navegar pelos nós (nodes) do documento e extrair as informações desejadas. Vamos supor que o XML que você está manipulando tenha a seguinte estrutura:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <cliente>
    <nome>João Silva</nome>
    <email>joao@example.com</email>
  </cliente>
  <cliente>
    <nome>Maria Souza</nome>
    <email>maria@example.com</email>
  </cliente>
</root>

Você poderá criar o arquivo XML acima copiando esse conteúdo, jogando o texto em um bloco de notas e salvando com a extensão .xml. Perceba que o arquivo xml possui um cabeçalho indicando que é um arquivo xml de versão 1 e que utiliza UTF-8 para codificação do texto. Se preferir faça download do projeto e o arquivo estará na pasta raiz.

Para ler os nomes e e-mails dos clientes, você pode utilizar o seguinte código:

procedure LerDadosXML(const FileName: string);
var
  XMLDoc: IXMLDocument;
  RootNode, ClienteNode: IXMLNode;
  i: Integer;

begin
  XMLDoc := TXMLDocument.Create(nil);
  try

    // Define o nome do arquivo a ser carregado
    XMLDoc.LoadFromFile(FileName);

    // Define que o XML não pode ser modificado
    XMLDoc.Options := XMLDoc.Options + [doNodeAutoCreate, doNodeAutoIndent];

    // Carrega o documento XML
    XMLDoc.Active := True;

    // Obtém o nó raiz
    RootNode := XMLDoc.DocumentElement;

    Memo1.Clear;

    // Itera pelos nós de cliente
    for i := 0 to RootNode.ChildNodes.Count - 1 do
    begin
      ClienteNode := RootNode.ChildNodes[i];

      // Exibe o nome e e-mail do cliente
      Memo1.Lines.Add('Nome: '+ ClienteNode.ChildNodes['nome'].Text);
      Memo1.Lines.Add('Email: '+ ClienteNode.ChildNodes['email'].Text);
    end;
  finally
    XMLDoc := nil;
  end;
end;

Este código percorre cada nó <cliente> dentro do nó raiz <root> e exibe o nome e e-mail de cada cliente. A função RootNode.ChildNodes.Count retorna o número de nós filho, e o loop for permite iterar por cada nó <cliente>.

Passo 4: Chamando o método de leitura do XML no botão
procedure TForm1.Button1Click(Sender: TObject);
begin
  //carrega o arquivo cliente.xml que está na pasta raiz do executável
  LerDadosXML(ExtractFilePath(Application.ExeName)+'cliente.xml');
end;

Este código passa para a função LerDadosXML o arquivo “cliente.xml” que estará junto com o executável do projeto. O método ExtractFilePath apenas extrai o caminho do executável, como por exemplo “c:\LerXml\”, e o nome do arquivo “cliente.xml” será concatenado ao caminho do executável formando o caminho “c:\LerXML\cliente.xml”.

Veja abaixo a ilustração do projeto:

Ilustração do projeto.

Código fonte do exemplo

Você pode fazer o download do exemplo do projeto através do repositório do github:

https://github.com/Gisele-de-Melo/LerXML

Conclusão

A leitura e manipulação de arquivos XML em Delphi, utilizando a classe TXMLDocument, é uma tarefa essencial e relativamente simples. A capacidade de estruturar e manipular dados de forma organizada torna o XML uma ferramenta poderosa em diversas aplicações modernas. Com as técnicas apresentadas neste artigo, você está preparado para começar a trabalhar com XML em seus projetos Delphi, garantindo interoperabilidade e flexibilidade na gestão de dados.

Ao dominar essas habilidades, você não apenas melhora a qualidade do seu software, mas também aumenta a eficiência e a facilidade de manutenção dos seus projetos.

Posts Relacionados

Deixe um comentário