Dev (Back & Front)ARTIGO

Cadastrar, Listar, Editar e Excluir dados de um XML com ASP – Parte 01

Esse é o primeiro de três artigos que falam sobre como você usar o XML para servir de “Banco de Dados”. Usarei o método mais simples para fazer esse tipo de conexão.

Vamos começar por como Cadastrar dados em um XML.

Primeiro temos que ter o XML pronto, como um Banco de Dados com suas “Colunas” já estruturadas. Adicionei três tags a ele e uma principal, as tags são nome, email e telefone, junto com a tag usuario, que fecha o registro e junto com a tag cadastro que chega o “pacote”. Então vamos lá:

Banco.xml

<?xml version="1.0" encoding="UTF-8"?>
<cadastro>
  <usuario>
    <nome>teste nome</nome>
    <email>teste email</email>
    <telefone>teste telefone</telefone>
  </usuario>
</cadastro>

Deixei a estrutura fixa, já com as tags nome, email e telefone, já preenchidas para só seguirem a base, saber do que cada elemento é composto.

XML criado então é só criar uma página chamada Cadastro.asp, dentro dela criar um formulário com os campos de Nome, E-Mail e Telefone e um botão para salvar, tudo em tags HTML mesmo.

Na mesma página fiz uma otimização, coloquei o código de cadastramento em ASP dentro da mesma página e ativei o script através do click do botão “Enviar”, finalizando fica assim:

Cadastro.asp

<%@ Language="VBScript" %>
<html>
<body>
<a href="Cadastro.asp">CADASTRAR</a> - <a href="Listar.asp">LISTAR</a>
<br><br>
<form action="Cadastro.asp" method="post">
    <b>Nome: </b><input type="text" name="Nome"><br>
    <b>E-Mail: </b><input type="text" name="EMail"><br>
    <b>Telefone: </b><input type="text" name="Telefone"><br>
    <input type="submit" value="Cadastrar" name="btCad">
</form>
</body>
</html>
<%
' Cadastrando dentro do arquivo XML
If Request.Form("btCad") = "Cadastrar" Then
Dim Nome, EMail, Telefone, Banco
Nome = Request.Form("Nome")
EMail = Request.Form("EMail")
Telefone = Request.Form("Telefone")
Banco = Server.MapPath("Banco.xml")
Set DocMT = Server.CreateObject("Microsoft.XMLDOM") ' Criando Objeto
DocMT.Load(Banco)
Set RaizXML = DocMT.documentElement
Set CriarReg = DocMT.createElement("usuario")
RaizXML.appendChild(CriarReg)
' Funcção para criar objetos dentro do XML
Function AlimentarXML(NomeElemento, NomeVariavel)
Set Campo = DocMT.createElement(""&NomeElemento&"")
Campo.Text = NomeVariavel
CriarReg.appendChild(Campo) ' Linha de criação de Objetos
End Function
Call AlimentarXML("nome", Nome)
Call AlimentarXML("email", EMail)
Call AlimentarXML("telefone", Telefone)

DocMT.Save(Banco)
Response.Write("<script>alert('Cadastrado com Sucesso!');location='Cadastro.asp'</script>")
Set DocMT = Nothing
End If
%>
>

Para ficar mais fácil, deixei o código todo comentado, mas algumas linhas serão esclarecidas:

Para inserir dados no XML, usei o Microsoft.XMLDOM para conexão. Em cada inserção adiciono uma tag usuario com essa linha abaixo:

Set CriarReg = DocMT.createElement("usuario")

Como são três tags para ser alimentadas usei uma função de minha autoria para fazer esse trabalho, a [cor2]AlimentarXML[/cor2] e adiciono com a linha Call AlimentarXML(“nome”, Nome) e salvo tudo através do DocMT.Save(Banco) e pronto, é só testar e ver se o XML está sendo manipulado corretamente:

OBS: Quando testei no meu localhost, o arquivo Cadastro.asp deu erro de acesso. Teste ele em um servidor web e funcionou, caso isso aconteçam com vocês também.

Até o próximo artigo!

Ted kAutor

Programador WEB com conhecimento em várias linguagens de programação. Sócio-Fundador e Desenvolvedor na AgênciaOFF, desenvolvendo o Front-End de Sites e criando interatividades com JavaScript, HTML5 (Games em JavaScript). Desenvolvo também em Objective-C (para iPhone/iPad), Ardunio (C/C++), PHP, ASP e ASP.NET (C# e VB). Programo desde 1997 e tenho uma grande experiência na área.

Ver perfil