Seções iMasters
Desenvolvimento + Linguagens + XML

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

Uma observação: tentei fazer o mais fácil possível para garantir um bom entendimento na hora da programação. Qualquer alteração no código para facilitar os comandos será bem-vinda, então vamos lá.

Criem um arquivo chamado Editar.asp e nele serão lidas todas as tags que contém no arquivo Banco.xml , mas com a querystring passada pelo arquivo Ler.asp que criamos no artigo anterior. Vamos só alterar uma única tag, um único nó do XML. Lembrando que usei uma tag “nome”: mas vocês poderiam criar uma tag “id” e colocar números seqüenciais ou randômicos, a escolha fica a critério.

Vamos primeiro listar todos os registros, criando os objetos que já utilizamos nos primeiros artigos, nada a mais.

<%@ Language="VBScript" %>

<%

Dim Banco : Banco = Server.MapPath("Banco.xml")


Set XMLDOC = Server.CreateObject("Microsoft.XMLDOM")

Set objLER = Server.CreateObject("Microsoft.XMLDOM")

XMLDOC.Load(Banco)

Set objLER = XMLDOC.getElementsByTagName("*")

%>

Logo abaixo desse script vamos criar o formulário com um “for” fazendo a varredura nas tags para pegar só o valor de tag citado na querystring passada:

<html>

<body>

<a href="Cadastro.asp">CADASTRAR</a> - <a href="Listar.asp">LISTAR</a>

<br><br>

<form action="Editar.asp?nome=<%=Request.QueryString("nome")%>" method="post">

            <input type="hidden" name="CampoUpdate" value="<%=Request.QueryString("nome")%>">

            <%

            For i = 0 To (objLER.length - 1)

            If objLER.Item(i).Text = ""&Request.QueryString("nome")&"" Then

            %>

            <b>Nome: </b><input type="text" name="Nome" value="<% Response.Write(objLER.Item(i).Text) %>"><br>

            <b>E-Mail: </b><input type="text" name="EMail" value="<% Response.Write(objLER.Item(i+1).Text) %>"><br>

            <b>Telefone: </b><input type="text" name="Telefone" value="<% Response.Write(objLER.Item(i+2).Text) %>"><br>

            <%

            End If

            Next

            %>

<input type="submit" value="Editar" name="btEdt">

</form>

</body>

</html>

Reparem a linha onde temos If objLER.Item(i).Text = “”&Request.QueryString(“nome”)&”" Then, é ela que está “selecionando” a tag que quero mostrar.

E por fim a edição:

<%

If Request.Form("btEdt") = "Editar" Then

            Dim Nome, EMail, Telefone, CampoUpdate, i

            Nome             = Request.Form("Nome")

            EMail              = Request.Form("EMail")

            Telefone          = Request.Form("Telefone")

            CampoUpdate = Request.Form("CampoUpdate")

           

            Set objLER_upDate = XMLDOC.getElementsByTagName("*")

                        For i = 0 To (objLER.length - 1)

                                   If objLER.Item(i).Text = ""&CampoUpdate&"" Then

                                               objLER.Item(i).Text    = Nome

                                               objLER.Item(i+1).Text            = EMail

                                               objLER.Item(i+2).Text            = Telefone

                                   End If

                        Next

                        XMLDOC.Save(Banco)

                        Response.Write("<script>alert('Editado com Sucesso!');location='Listar.asp'</script>")

            Set objLER_upDate = Nothing

End If

Set objLER = Nothing

Set XMLDOC = Nothing

%>

Coloquei a querystring passada em um campo hidden e joguei ele dentro de um “for“, como fiz no formulário, em seguida troquei os valores pelas variáveis em seqüência, Nome, EMail e Telefone, salvei com o método XMLDOC.Save e passei um alert em JavaScript e pronto!!

Façam os testes juntando os três artigos.

Esse tipo de utilização do XML serve para coisas pequenas, por exemplo, um combo de país, cidades de um determinado estado, cores, dentre outros.

Até os próximos artigos!

Comente também

7 Comentários

Alemão Gumi

Infelizmente nao tem como entender. Quais são os nomes dos arquivos que devem ser salvos.
Por exemplo: qual é o codigo em que devo salvar o arquivo banco.xml. O codigo que começa com html deve ser salvo com que nome????
Desculpe pois sou um pouco leigo no assunto. Se for possivel disponibilizar os arquivos para download.
Obrigado!

Ted k

Leia novamente o artigo, todas as páginas são salvas com a extensão “.asp”, existem mais dois artigos que complementam esse, veja eles também, mais vamos para a dúvida:

“Criem um arquivo chamado Editar.asp e nele serão lidas todas as tags que contém no arquivo Banco.xml , mas com a querystring passada pelo arquivo Ler.asp que criamos no artigo anterior.”

É o que tem no segundo parágrafo

Repare no “action do formulário:
“Editar.asp?nome=”

E no botão de ação dele:
“”

Está mais óbvio que a ação do formulário e o código ASP a seguir estarão na mesma página, qualquer outra dúvida é só postar

Abraços:

OBS: Como você disse que é meio leigo no assunto, o legal é tentar ver essa mínimas coisas para não ficar meio “sem entender”

onde está o artigo 2???

Rina, Obrigado.

Não consegui. dá esse erro abaixo:

—————————————

msxml3.dll error ’80004005′

The stylesheet does not contain a document element. The stylesheet may be empty, or it may not be a well-formed XML document.

/theasp/Listar.asp, line 12

Quero fazer meu imail . como devo rgistrar?

Qual a sua opinião?