Desenvolvimento - C#

Salvando em XML

Neste artigo aprenderemos como salvar dados em um XML.

por Fernanda Sallai



Neste artigo aprenderemos como salvar dados em um XML.

Nos próximos artigos iremos aprender como alterar, excluir e realizar pesquisas em XML.

OBS: A finalidade do artigo é mostrar como salva em XML, então foi colocado todo o código no evento click do botão, mas numa aplicação real, o ideal é desenvolver o projeto em camadas.

Vamos começar ?!

Aplicação

A parte de criar um projeto não será abordada neste artigo. Neste exemplo usarei uma aplicação Windows Forms e a linguagem C#, mas é claro que poderá ser utilizado em qualquer tipo de aplicação e linguagem fazendo algumas adaptações conforme sua escolha. Criaremos o projeto conforme a figura 1.


salvandoXML_figura1.jpg

Figura 1 – Projeto criado.

Formulário (Form1.cs)

Criaremos o layout do formulário conforme figura 2. Na tabela 1 conterá as propriedades do formulário.

Figura 2 – Layout do formulário.


Formulário

Name

frmCadastro

Text

Salvando em XML

Width

409

Height

273

Label

Name

lblTitulo

Text

Dados do cliente

Font

Size: 10

Bold: True

Name

lblNome

Text

Nome:

Name

lblEndereco

Text

Endereço:

Name

lblBairro

Text

Bairro:

Name

lblCidade

Text

Cidade:

Button

Name

btnSalvar

Text

Salvar:

Tabela 1 – Propriedades do formulário.

Bom. Com o layout do formulário pronto, vamos fazer a codificação.

Form1.cs

A listagem 1 exibe a codificação comentada passo a passo.

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

// Namespace para File

using System.IO;

// Namespace para XElement

using System.Xml.Linq;

namespace DesenvolvendoEAprendendo

{

public partial class frmCadastro : Form

{

/// <summary>

/// Variável para exibir a mensagem de erro.

/// </summary>

public string aviso = string.Empty;

/// <summary>

/// Nome do arquivo XML.

/// </summary>

private string nomeDoArquivo = "Clientes.xml";

/// <summary>

/// Nome do elemento XML

/// </summary>

private XElement doc;

/// <summary>

/// Construtor

/// </summary>

public frmCadastro()

{

// Verifica se o arquivo XML existe.

if (File.Exists(nomeDoArquivo))

{

// Usa o XML existente

doc = XElement.Load(nomeDoArquivo);

}

else

{

// Cria o XML

doc = new XElement("Clientes");

}

InitializeComponent();

}

/// <summary>

/// Evento click do botão salvar

/// </summary>

/// <param name="sender">sender</param>

/// <param name="e">e</param>

private void btnSalvar_Click(object sender, EventArgs e)

{

if (ValidarCampos())

{

//ID do cliente. Usei o tipo guid para ter certeza que nao terei ID repetido.

Guid clienteId = Guid.NewGuid();

//Instanciando um elemento XML Cliente

XElement cliente = new XElement("Cliente");

// Adicionando os valores para cada elemento

//OBS: ToString("N") - Traz o GUID sem traços

cliente.Add(new XElement("ID", clienteId.ToString("N")));

cliente.Add(new XElement("Nome", txtNome.Text));

cliente.Add(new XElement("Endereco", txtEndereco.Text));

cliente.Add(new XElement("Bairro", txtBairro.Text));

cliente.Add(new XElement("Cidade", txtCidade.Text));

// Adicionando o elemento no XML

doc.Add(cliente);

//Salvando no XML

doc.Save(nomeDoArquivo);

// Exibindo mensagem de confirmação.

MessageBox.Show("Cliente salvo com sucesso", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);

this.Close();

}

else

{

MessageBox.Show("" + aviso, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}

/// <summary>

/// Validar se todos os campos foram preenchidos.

/// </summary>

/// <returns>true ou false</returns>

private bool ValidarCampos()

{

bool camposPreenchidos = true;

if (txtNome.Text == string.Empty)

{

this.aviso = "Informe o nome.";

return camposPreenchidos = false;

}

if (txtEndereco.Text == string.Empty)

{

this.aviso = "Informe o nome.";

return camposPreenchidos = false;

}

if (txtBairro.Text == string.Empty)

{

this.aviso = "Informe o nome.";

return camposPreenchidos = false;

}

if (txtCidade.Text == string.Empty)

{

this.aviso = "Informe o nome.";

return camposPreenchidos = false;

}

return camposPreenchidos;

}

}

}

Listagem 1 – Codificação do Form1.cs

Após a codificação, vamos saber onde o XML será salvo.

XML

O arquivo XML será salvo dentro da pasta Debug ou release do seu projeto, depende do modo que está rodando sua aplicação.

Para acessar: clique com o botão direito do mouse em cima do projeto >> Open Folder in Windows Explorer >> pasta Bin >> Debug

Pronto! Terminamos!

Vamos executar a aplicação?!

A figura 3 exibe o formulário preenchido e a mensagem de confirmação que o cliente foi cadastrado.

Figura 3 – Testando o cadastro de cliente.

A figura 4 exibe o arquivo XML na pasta Debug.

Figura 4 – Exibindo a pasta debug contendo o XML criado.

E a listagem 2 exibe o XML salvo.

<?xml version="1.0" encoding="utf-8" ?>

- <Clientes>

- <Cliente>

<ID>e18245e5c8bc445790e4e421851b13f4</ID>

<Nome>fernanda Sallai</Nome>

<Endereco>Rua das flores, 221</Endereco>

<Bairro>Paulista</Bairro>

<Cidade>São Paulo</Cidade>

</Cliente>

</Clientes>

Listagem 2 – XML

Espero que tenham gostado. Até o próximo artigo.

Se você esperar as oportunidades acontecerem, você será um na multidão. Edward de Bono

Fernanda Sallai

Fernanda Sallai - Bacharel em Sistemas de Informação na FICS - Faculdades Integradas Campos Salles, reside em São Paulo - SP, atua no desenvolvimento de aplicações Web / Windows Forms e escreve periodicamente em seu blog www.fernandasallai.com.