Desenvolvimento - C#
Salvando em XML
Neste artigo aprenderemos como salvar dados em um XML.
por Fernanda SallaiNeste 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.
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