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

Continuação do Artigo: Parte 01
Listando e Excluindo dados do XML

Listar todo o conteúdo de um XML é realmente a parte mais fácil, complicado é você listar e formatar o XML dentro de um arquivo com indicadores XSL. No artigo anterior (Parte 01), temos o arquivo Banco.xml com as tags nome, email e telefone. Nesse artigo vamos aprender a listar e excluir todos os elementos de dentro do nó usuario.

De primeira vamos organizar o arquivo Visualizar.xsl, olha só como ele tem que:

Visualizar.xsl

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  <xsl:template match="/">
    <center>
      <font color="#000000" size="2" face="MS Sans Serif">Visualizando Dados</font>
      <table width="465" border="1" cellspacing="0" cellpadding="0">
        <tr>
          <td width="117" height="22"><div align="center"><strong>Nome</strong></div></td>
          <td width="125"><div align="center"><strong>E-mail</strong></div></td>
          <td width="107"><div align="center"><strong>Telefone</strong></div></td>
          <td width="106"><div align="center"><strong>Ações</strong></div></td>
        </tr>
        <xsl:for-each select="cadastro/usuario">
          <tr align="center">
            <td height="22"><xsl:value-of select="nome"/></td>
            <td><xsl:value-of select="email"/></td>
            <td><xsl:value-of select="telefone"/></td>
            <td><a><xsl:attribute name="href">Editar.asp?nome=<xsl:value-of select="nome"/><xsl:value-of select="link"/></xsl:attribute>Editar</a>/<a><xsl:attribute name="href">Listar.asp?nome=<xsl:value-of select="nome"/><xsl:value-of select="link"/></xsl:attribute>Apagar</a></td>
          </tr>
        </xsl:for-each>
      </table>
    </center>
  </xsl:template>
</xsl:stylesheet>

Com o stylesheet (que não vem ao caso explicar no momento) vamos fazendo a estrutura de visualização de todos os elementos da tag usuario através de um for-each assim:

e fechando com

Pegamos o valor dos elementos com essa estrutura aqui: .

Usamos o atributo para gerar links, no nosso caso para excluir e editar (que não será mostrado nesse artigo).

Em uma página chamada Listar.asp criamos os objetos para chamar o XML e o XSL e integra-los com o transformNode:

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

XMLDOC.Load(Server.MapPath("Banco.xml"))
XSLDOC.Load(Server.MapPath("Visualizar.xsl"))
Response.Write(XMLDOC.transformNode(XSLDOC))

Para deletar é simples, criamos um XMLDOC.documentElement para escolher qual nó vamos deletar e chamamos por querystring como tem no do Visualizar.xsl, que no caso usamos o select=”nome”, deletando com o removeChild, segue abaixo o código completo de Listar.asp

Listar.asp

<%@ Language="VBScript" %>
<html>
<body>
<a href="Cadastro.asp">CADASTRAR</a> - <a href="Listar.asp">LISTAR</a>
<br><br>
<%
Set XSLDOC = Server.CreateObject("Microsoft.XMLDOM") ' Criando Objeto
Set XMLDOC = Server.CreateObject("Microsoft.XMLDOM") ' Criando Objeto

' Listando Dados
XMLDOC.Load(Server.MapPath("Banco.xml"))
XSLDOC.Load(Server.MapPath("Visualizar.xsl"))
Response.Write(XMLDOC.transformNode(XSLDOC))

' Deletando Dados
If CStr(Request.QueryString("Nome")) <> "" Then
	Banco = Server.MapPath("Banco.xml") ' Chamando o Arquivo XML para sofrer alteração
	XMLDOC.Load(Banco)

	Set RaizXML = XMLDOC.documentElement
	Set AlterarReg = RaizXML.selectSingleNode("usuario[nome='"&Request.QueryString("nome")&"']")
	RaizXML.removeChild(AlterarReg) ' Linha de remoção de Objetos

	XMLDOC.Save(Banco)
	Response.Write("<script>alert('Deletado com Sucesso!');location='Listar.asp'</script>")
End If

Set XSLDOC = Nothing
Set XMLDOC = Nothing
%>
</body>
</html>

E pronto, mais um artigo finalizado, até o próximo!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *